我有两个nib文件 - Main.nib
和Preference.nib
在Main.nib
文件中,我有一个NSView
类的实例。它的窗口有一个NSPopUpButton
,点击后会显示一个菜单。在菜单中,我显示了“首选项”菜单项。
单击时的菜单项显示包含颜色井项的首选项面板。
点击颜色后,将显示一个颜色面板以选择颜色。
问题是如何将该颜色应用于主应用程序窗口。
我的首选项面板窗口位于Preference.nib文件中。
所以问题是从另一个Nib窗口访问NSView
。
有没有办法可以在首选项面板和我的主应用程序窗口(NSView
)之间建立连接
答案 0 :(得分:2)
你在错误的层面上考虑这个问题。 NSView
和NSWindow
是模型 - 视图 - 控制器模式中的视图对象,不应用于保存应用程序数据。您在首选项面板中选择的颜色是应用程序数据,应存储在适当的模型对象中。
NSUserDefaultsController
对象以存储该数据(假设这是一个应用程序范围的设置)。您没有确切地说明主窗口中使用的颜色是什么,但是如果使用它的对象是绑定意识,您可以将该对象绑定到NSUserDefaultsController
上的相同值并且您已完成。
否则,您可以响应颜色孔的操作消息以将颜色存储在适当的位置,然后使用NSNotificationCenter
发送通知以告知其他对象颜色已更改。当您的通知消息的值发生更改时,您需要注册任何需要采取措施的对象。
以下是一些资源: