NSTextField не будет setStringValue - PullRequest
5 голосов
/ 12 июля 2011

Я только начинаю довольно простое приложение (еще не совсем в цель C) с NSWindow, содержащим NSTextField.Appdelegate.h имеет следующее:

NSWindow *window;
NSTextField *userIDText;

@property (nonatomic, retain) IBOutlet NSWindow *window;
@property (nonatomic, retain) IBOutlet NSButton *nextButton;
@property (nonatomic, retain) IBOutlet NSTextField *userIDText;

приложение appdelegate подключается в Интерфейсном Разработчике к окну и текстовому полю, а затем к файлу .m:

@synthesize userIDText;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    [userIDText setStringValue:@"user"];
    NSLog(@"UserIDTextString: %@", [userIDText stringValue]);

(я пыталсятакже, кроме @ "user" в виде строки) В журнале отображается только (ноль), и текстовое поле не изменяется.Что я делаю неправильно?Сейчас я ищу в интернете около 5 часов, и, очевидно, я скучаю по чему-то очень простому.

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Ваш метод applicationDidFinishLaunching вызывается перед загрузкой окна.Вот почему NSLog(@"UserIDTextString: %@", [userIDText stringValue]); печатает ноль, и вы не можете установить значение текстового поля.Попробуйте использовать awakeFromNib метод.

1 голос
/ 13 февраля 2012

Только что нашел ваш вопрос, так как у меня была такая же проблема.Проблема заключалась в том, что если вы создаете окно с кнопками и прочим в предварительно созданном файле «MainMenu.xib», вы подключаете не все к «Владельцу файла», а к отдельно сгенерированному объекту «Делегат приложения» на левой стороне.1001 *

Я почти уверен, что вы уже исправили проблему.Я подумал, что это может быть полезно для кого-то, у кого такая же проблема.

С наилучшими пожеланиями!

...