Frage

Ich habe gegoogelt um und fand einige Antworten, aber ich einer von ihnen nicht an der Arbeit. Ich habe eine NSObject mit der Klasse „A“ und einer zweiten Klasse „B“ ohne NSObject. In der Klasse „A“ sind meine IBOutlets definiert, und ich kann nicht scheinen, um herauszufinden, wie man diese Ausgänge aus der Klasse „B“ für den Zugriff auf ...

Ich habe Fragen beantwortet gefunden wie http: // Foren. macrumors.com/archive/index.php/t-662717.html Aber sie sind verwirrend.

Jede Hilfe wäre sehr dankbar!

vereinfachte Version des Code:

aClass.h:

#import <Cocoa/Cocoa.h>

@interface aClass : NSObject {
    IBOutlet NSTextField *textField;
}
@end


aClass.m:

#import "aClass.h"

@implementation aClass
// Code doesn't matter
@end


bClass.h:

#import <Cocoa/Cocoa.h>

@interface bClass : NSObject {
}
@end


bClass.m:

#import "aClass.h"
#import "bClass.h"

@implementation bClass
    [textField setStringValue: @"foo"];
@end
War es hilfreich?

Lösung

Wenn Sie schreiben:

  

Ich habe eine NSObject mit der Klasse   „A“ und eine zweite Klasse „B“, ohne eine   NSObject.

Es sagt mir, dass Sie nicht über Ihren Kopf um die grundlegenden Konzepte. Lesen Sie über Apples Objective-C Einführung und die Tutorial-Projekte.

Andere Tipps

Die Lösung wird mit NSNotificationCenter . Hier ist ein Thread sagen Ihnen, wie es geht: senden und empfangen von Nachrichten über NSNotificationCenter in Objective-C?

Dann in dem Verfahren auf die Benachrichtigung reagiert, rufen Sie eine Methode, um die Outlet Zugriff

- (void) receiveTestNotification:(NSNotification *) notification
{

    if ([[notification name] isEqualToString:@"TestNotification"])
        //NSLog (@"Successfully received the test notification!");
        [self performSelectorOnMainThread:@selector(doIt:) withObject:nil waitUntilDone:false];
}
- (void) doIt
{
    //testLabel.text = @"muhaha";
}

Das ist für mich gearbeitet, ich hoffe, es tut dies auch für Sie.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top