【问题标题】:Accessing objects on one nib file from another nib file从另一个 nib 文件访问一个 nib 文件上的对象
【发布时间】:2010-06-18 07:12:14
【问题描述】:

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

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

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

【问题讨论】:

    标签: cocoa macos interface-builder


    【解决方案1】:

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

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

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

    这里有一些资源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-04
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多