我正在使用Mac OS X应用程序来保存和加载数据(有点笔记应用程序)。我添加了一些NSTextFields,我想在按下加载按钮时更改其字符串值。我想在一个单独的课堂上这样做。我创建了这个类并将其命名为加载。现在我有 Load.h 和 Load.m 文件。我按下按钮时做了一个IBAction:
- (IBAction)loadText:(id)sender
{
[textField setStringValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"MyNote"]];
NSLog(@"This method works!");
}
Xcode(7 beta 5)没有看到任何错误。但是当我运行它时它不会对文本字段做任何事情,但它会记录字符串。当我试图找到一种方法来编辑字符串值时,我发现如果你在AppDelegate中为NSTextField创建了一个插座,它就可以正常工作。 在app Delegate中:
- (IBAction)loadTextInAppDelegate:(id)sender
{
[appDelegateTextField setStringValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"MyNote"]];
NSLog(@"This method works!");
}
很高兴知道有可能这样做,但是我的 AppDelegate.m 文件会很乱,因为我不得不放在我想要放在 Load.m 文件中的所有内容中。
那么有没有办法在与 AppDelegate 不同的类中更改NSTextField的字符串值?
答案 0 :(得分:1)
两件事。
1:你确定你的loadText方法中的textField不是吗?
2:你确定这个方法正在UI(主)线程上执行吗?