显示在菜单栏上
就像这个问题:How to create a background-running Cocoa application?
然而,他问如何制作一些没有出现在菜单栏上的东西。好吧,我想把东西显示在菜单栏上。
答案 0 :(得分:2)
在Xcode中启动新的Cocoa应用程序后要做的关键事项:
1)为您的某个课程NSStatusItem
@property
和IBOutlet NSMenu
@property
应用程序在AppDelegate
的{{1}}开始后初始化它们(当然,它不一定是控制状态项的awakeFromNib
;您可以使用另一个类):
AppDelegate
2)在您的MainMenu.xib中,制作一个self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
[self.statusItem setMenu:self.menu];
[self.statusItem setTitle:@"Status"];
[self.statusItem setHighlightMode:YES];
并将其连接到NSMenu
的{{1}} IBOutlet。这将是您单击状态项时显示的菜单,因此请添加所需的任何其他项目,为其创建AppDelegate
,然后将其连接起来。
3)同样在MainMenu.xib中,删除MainMenu.xib中的Window对象,因为启动应用程序时不需要显示主窗口。
4)在info.plist中,添加密钥“Application is agent(UIElement)”并将其值设置为YES。这摆脱了停靠图标。
GravityScore链接的tutorial涵盖与上述相同的材料。如果在阅读上述内容后您不确定如何为菜单项设置操作,或者想知道如何动态添加菜单项,则此other tutorial可能会有所帮助。
当然,请参阅NSStatusItem Class Reference了解如何自定义状态项的外观。