从另一个nib文件访问一个nib文件上的对象

时间:2010-06-18 07:12:15

标签: cocoa macos interface-builder

我有两个nib文件 - Main.nibPreference.nibMain.nib文件中,我有一个NSView类的实例。它的窗口有一个NSPopUpButton,点击后会显示一个菜单。在菜单中,我显示了“首选项”菜单项。 单击时的菜单项显示包含颜色井项的首选项面板。 点击颜色后,将显示一个颜色面板以选择颜色。 问题是如何将该颜色应用于主应用程序窗口。

我的首选项面板窗口位于Preference.nib文件中。 所以问题是从另一个Nib窗口访问NSView

有没有办法可以在首选项面板和我的主应用程序窗口(NSView)之间建立连接

1 个答案:

答案 0 :(得分:2)

你在错误的层面上考虑这个问题。 NSViewNSWindow是模型 - 视图 - 控制器模式中的视图对象,不应用于保存应用程序数据。您在首选项面板中选择的颜色是应用程序数据,应存储在适当的模型对象中。

例如,您可以使用绑定将颜色很好地绑定到NSUserDefaultsController对象以存储该数据(假设这是一个应用程序范围的设置)。您没有确切地说明主窗口中使用的颜色是什么,但是如果使用它的对象是绑定意识,您可以将该对象绑定到NSUserDefaultsController上的相同值并且您已完成。

否则,您可以响应颜色孔的操作消息以将颜色存储在适当的位置,然后使用NSNotificationCenter发送通知以告知其他对象颜色已更改。当您的通知消息的值发生更改时,您需要注册任何需要采取措施的对象。

以下是一些资源: