如何在xcode中创建仅后台应用程序?

时间:2012-02-21 08:34:56

标签: objective-c xcode4

显示在菜单栏上

就像这个问题:How to create a background-running Cocoa application?

然而,他问如何制作一些没有出现在菜单栏上的东西。好吧,我想把东西显示在菜单栏上。

1 个答案:

答案 0 :(得分:2)

在Xcode中启动新的Cocoa应用程序后要做的关键事项:

1)为您的某个课程NSStatusItem @propertyIBOutlet 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了解如何自定义状态项的外观。