【问题标题】:load a menu from nib从笔尖加载菜单
【发布时间】:2011-01-26 13:53:14
【问题描述】:

我有一个 Main.xib,其中包含主窗口、主菜单和名为“StatusMenu”的第二个菜单,但无法连接到任何地方。

在我的应用程序中,我有一个 NSStatusItem,我想按下它,然后显示那个二级菜单。

如何连接这两者?

谢谢

【问题讨论】:

  • 有没有办法做到这一点?我不想对菜单中的每个菜单项进行编码,而是想在 nib 文件中使用一个菜单。

标签: objective-c cocoa nib nsmenu nsstatusitem


【解决方案1】:

为状态项菜单创建一个 IBOutlet,然后在创建状态项时设置它的菜单:

[statusItem setMenu: statusItemMenu];

【讨论】:

  • 是的,我试过了,但是 IBOutlet 意味着我的代码会在笔尖中产生一些东西。我想要相反的东西。我做了manu,我需要我的代码才能看到。
【解决方案2】:

您应该向 Interface Builder 添加一个对象并将可见菜单连接到它。该对象可以是具有适当@IBOutlet 的任何自定义类。只需在“Identity Inspector”中设置类即可。

这样,在 Nib 中加载也会创建对象的实例。然后,您必须确保该对象本身连接到 AppDelegate 的出口,否则您将无法访问它。

【讨论】: