我有一个包含实例变量int adventures
的AppController对象。
这通过Interface Builder绑定到标签。
我还有一个名为PopUpWindow的NSWindowController的子类。单击enter按钮时,弹出窗口上文本字段中的值应更改AppController对象中的变量adventures
。
即使对@public
使用@package
和adventures
,它也不会改变。我也在尝试使用
[self willChangeValueForKey:@"adventures"];
来自PopUpWindow类的。这会跨班级吗?我怎么能这样做?
答案 0 :(得分:1)
这可能是你的AppNtroller可以注册命名通知的NSNotifications的好地方,我甚至不关心什么对象发送它,你PopUpWindow然后可以发布一个通知,你的AppController可以收到通知。另一种可能性是,如果PopUpWindow由AppController控制器拥有,它可以将AppController作为委托并向其委托发送消息。你的代码行
[self willChangeValueForKey:@"adventures"];
似乎暗示你的AppController正在发生,但是没有用,因为这只会告诉观察者你的AppController.adventures它已经改变了,你希望它以另一种方式工作,我把输入按钮归结为点击它向你发送一条消息PopUpWindow NSWindowController。