我想从 AppDelegate 更新我的应用程序中的 UI,但每当我这样调用它时:
Controller *object = [[Controller alloc] init];
[object methodHere];
它似乎没有更新 UI。我在这里做错了什么?我已经放入一个 NSLog 来查看它是否被调用,它确实被调用了。 Here是一个显示错误的示例项目。
编辑:谁能告诉我要对我提供的项目进行哪些更改。我只是不知道要在我的项目中输入什么,以便我可以更改另一个类的简单 NSTextField 的值。
最佳答案
当您编写 [[Controller alloc] init]
时,您并没有访问 nib 中的 Controller 对象。您正在创建一个新的 Controller 对象,它未连接到应用程序中的任何其他对象。
请记住,每个 Controller 对象都不相同,正如每个 NSArray 都不相同一样。仅仅因为您在 Nib 中创建了一个连接到 NSTextField 的 Controller 并不意味着您刚刚创建的某个随机 Controller 共享该 Controller 的连接。
您需要做的是为委托(delegate)提供对 nib 中 Controller 的引用。
关于objective-c - 从另一个类方法更新 UI - Cocoa,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5082018/