【发布时间】:2011-10-28 22:25:03
【问题描述】:
XCode 以神秘的方式工作(至少对我而言)。 我只是想在我的应用程序中创建一个首选项窗格。当我运行我的应用程序时,会出现库存菜单栏(Apple、MyApp、File、Edit...),并且“首选项”菜单项显示为灰色。这是有道理的,因为我还没有开始玩它。
究竟如何添加/删除/激活/停用菜单项?我不是在谈论添加任何新内容,只是使用应该存在的内容。
提前致谢。
【问题讨论】:
XCode 以神秘的方式工作(至少对我而言)。 我只是想在我的应用程序中创建一个首选项窗格。当我运行我的应用程序时,会出现库存菜单栏(Apple、MyApp、File、Edit...),并且“首选项”菜单项显示为灰色。这是有道理的,因为我还没有开始玩它。
究竟如何添加/删除/激活/停用菜单项?我不是在谈论添加任何新内容,只是使用应该存在的内容。
提前致谢。
【问题讨论】:
NSMenu 默认启用“自动启用项目”。这意味着如果菜单项没有连接它的操作消息,它将显示为灰色。因此,在您的情况下,您只需将“首选项”菜单项的“发送操作”设置为显示您的首选项窗口的任何操作。这可以与 AppDelegate 的某种 showPreferencesWindow: 方法挂钩,或者直接与窗口控制器的 showWindow: 方法挂钩。
要动态启用/禁用菜单项,最好的方法是实现 NSUserInterfaceItemValidation 协议,该协议有很好的文档here
编辑:您应用的菜单栏项目位于 MainMenu.xib 文件中。菜单栏在左侧显示为“主菜单”对象(如果您使用的是 Xcode 4)只需单击项目以修改它们,您可以像任何 UI 对象一样按住 Ctrl 键并从它们之间拖动连接。
【讨论】: