使用MenuBar Icon的简单Cocoa应用程序。如何:?

时间:2011-01-21 06:02:51

标签: cocoa xcode macos

我正在尝试制作一个非常简单的Cocoa应用程序。我有三个窗口,上面有三条消息,这就是它的全部内容。我想要做的是:

用户运行应用程序,应用程序图标出现在菜单栏中,这就是所有发生的事情,没有菜单,也没有停靠栏图标

然后,用户可以单击MenuBar图标并有一个下拉列表,并从三个可用消息中进行选择。

我知道它没用,但这实际上是我的第一个应用程序,我无法弄清楚如何让NSStatusItem正常工作......

我环顾四周并找到了一些教程,但我似乎无法跟随其中任何一个......任何帮助?

1 个答案:

答案 0 :(得分:19)

  1. 关于“无停靠图标” - 在Info.plist文件中添加布尔LSUIElement条目并将其设置为 true 。这也不会在应用切换器UI(cmd + tab)中显示应用程序。
  2. 添加菜单栏图标与查看NSStatusBarNSStatusItem文档以及使用示例代码一样多:
  3. // 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实例变量来解决此问题正在创建项目的位置。