我有一个runthis.h文件,其中有一个标签:
IBOutlet NSTextField *updateStatus;
现在在我的runthis.m文件中,在一个名为startTest的类中,我使用
更新它-(IBAction) startTest:(id)sender {
[updateStatus setStringValue:@"Testing"];
}
现在,如果我在另一个文件testing.m中为runthis类创建一个对象,那么试试这个:
runthis *testSomething = [[runthis alloc] init];
[testSomething performSelectorInBackground:@selector(startTest:) withObject:nil];
但是当我从testing.m调用它时,我发现标签* updateStatus的UI永远不会被设置为“Testing” 如果我直接从runthis.m调用它,那么UI会按预期更新。有什么想法吗?感谢。
答案 0 :(得分:1)
除非runthis
位于单独的笔尖中,否则它的插座不会自动连接,您必须将其作为参考传递。在testing
中,您必须连接文本字段,然后将其传递给runthis
,如:
[testSomething setStatusField:updateStatus];
或者您可以从testing
对象(称为委托)创建对runthis
对象的引用,并让testing
直接更新UI。这就是我要用的方法。