我只是一个相当简单的应用程序的开始(尚未真正包含在 objective-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在Interface Builder中连接到窗口和文本字段,然后在.m文件中:
@synthesize userIDText;

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

(除了字符串@@ user外,我还尝试了其他方法)
日志仅显示(空),并且文本字段未更改。我究竟做错了什么?我现在在互联网上搜索了大约5小时,这显然是我非常想念的事情。

最佳答案

在加载窗口之前,将调用applicationDidFinishLaunching方法。这就是为什么NSLog(@"UserIDTextString: %@", [userIDText stringValue]);输出null且无法设置文本字段的值的原因。尝试使用awakeFromNib方法。

关于objective-c - NSTextField不会setStringValue,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6669102/

10-11 07:53