我正在尝试制作一个非常简单的Cocoa应用程序。我有三个窗口,上面有三条消息,这就是它的全部内容。我想要做的是:
用户运行应用程序,应用程序图标出现在菜单栏中,这就是所有发生的事情,没有菜单,也没有停靠栏图标
然后,用户可以单击MenuBar图标并有一个下拉列表,并从三个可用消息中进行选择。
我知道它没用,但这实际上是我的第一个应用程序,我无法弄清楚如何让NSStatusItem正常工作......
我环顾四周并找到了一些教程,但我似乎无法跟随其中任何一个......任何帮助?
答案 0 :(得分:19)
LSUIElement
条目并将其设置为 true 。这也不会在应用切换器UI(cmd + tab)中显示应用程序。NSStatusBar
和NSStatusItem
文档以及使用示例代码一样多:
// this one is taken from apple documentation
- (void)activateStatusMenu {
NSStatusBar *bar = [NSStatusBar systemStatusBar];
theItem = [bar statusItemWithLength:NSVariableStatusItemLength];
[theItem retain];
[theItem setTitle: NSLocalizedString(@"Tablet",@"")];
[theItem setHighlightMode:YES];
[theItem setMenu:theMenu];
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[self activateStatusMenu];
}
更新由于ARC不允许在代码中进行retain
次调用,因此我设法通过创建theItem
作为类的__strong
实例变量来解决此问题正在创建项目的位置。