显示在菜单栏上
就像这个问题:How to create a background-running Cocoa application?
然而,他问如何制作菜单栏上没有显示的东西。嗯,我想让菜单栏上的东西显示出来。
发布于 2012-02-21 17:12:12
在Xcode中启动一个新的Cocoa应用程序后,您想要做的关键事情是:
1)为您的一个类提供一个NSStatusItem @property和一个IBOutlet NSMenu @property,并在应用程序在AppDelegate的awakeFromNib中启动后对其进行初始化(当然,它不必是控制状态项的AppDelegate;您可以使用另一个类):
self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
[self.statusItem setMenu:self.menu];
[self.statusItem setTitle:@"Status"];
[self.statusItem setHighlightMode:YES];2)在你的MainMenu.xib中,创建一个NSMenu并将其连接到你的AppDelegate的NSMenu IBOutlet。这将是当你点击你的状态项时出现的菜单,所以添加任何你想要的附加项,为它们制作IBActions,并连接它们。
3)同样在MainMenu.xib中,删除MainMenu.xib中的窗口对象,因为启动应用程序时不需要显示主窗口。
4)在您的info.plist中添加“应用程序是代理(UIElement)”键,并将其值设置为YES。这样就去掉了停靠图标。
GravityScore链接到的tutorial包含与上面相同的内容。如果在阅读了上面的内容后,您不确定如何为菜单项设置操作,或者想知道如何动态添加菜单项,此other tutorial可能会有所帮助。
当然,有关如何自定义状态项外观的信息,请参阅NSStatusItem Class Reference。
https://stackoverflow.com/questions/9374386
复制相似问题