gpt4 book ai didi

cocoa - 从另一个类调用时 NSTextfield 未更新

转载 作者:行者123 更新时间:2023-12-03 17:59:27 26 4
gpt4 key购买 nike

我有一个 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 将按预期更新。有什么想法吗?谢谢。

最佳答案

除非 runthis 位于单独的 Nib 中,否则它的 socket 不会自动连接,您必须将其作为引用传递。在测试中,您必须连接文本字段,然后将其传递给runthis,如下所示:

[testSomething setStatusField:updateStatus];

或者,您可以从 runthis 对象创建对 testing 对象的引用(将其称为委托(delegate)),并让 testing 更新 UI直接地。这就是我会使用的方法。

关于cocoa - 从另一个类调用时 NSTextfield 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8748210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com