如何在一个对象中设置一个实例变量?

时间:2011-07-31 14:52:25

标签: objective-c cocoa binding instance

我有一个包含实例变量int adventures的AppController对象。 这通过Interface Builder绑定到标签。

我还有一个名为PopUpWindow的NSWindowController的子类。单击enter按钮时,弹出窗口上文本字段中的值应更改AppController对象中的变量adventures

即使对@public使用@packageadventures,它也不会改变。我也在尝试使用

[self willChangeValueForKey:@"adventures"];
来自PopUpWindow类的

。这会跨班级吗?我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

这可能是你的AppNtroller可以注册命名通知的NSNotifications的好地方,我甚至不关心什么对象发送它,你PopUpWindow然后可以发布一个通知,你的AppController可以收到通知。另一种可能性是,如果PopUpWindow由AppController控制器拥有,它可以将AppController作为委托并向其委托发送消息。你的代码行

[self willChangeValueForKey:@"adventures"];

似乎暗示你的AppController正在发生,但是没有用,因为这只会告诉观察者你的AppController.adventures它已经改变了,你希望它以另一种方式工作,我把输入按钮归结为点击它向你发送一条消息PopUpWindow NSWindowController。

相关问题