使用故事板将 NSMenu 附加到 NSStatusItem

Attach NSMenu to NSStatusItem with Storyboard

我正在尝试将 NSMenu 项附加到 NSStatusItem,以便在单击 Mac OS 的菜单栏应用程序时显示菜单。

我是 Mac 编程新手,我在网上搜索了教程。然而,我找到的所有资料都涉及使用文件 Xib 添加 NSMenu 并将其链接到现有代码。但是,我的项目中没有这样的文件,它只包含故事板文件。

希望能帮到你。

干杯

您可以通过编程方式创建菜单并将其设置为 NSStatusItem,就像这样。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    _statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:30];
    _statusItem.image = [NSImage imageNamed:@"..."];

    // create menu
    NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
    NSMenuItem *item1 = [[NSMenuItem alloc] initWithTitle:@"menu1" action:@selector(menu1Action:) keyEquivalent:@""];
    NSMenuItem *item2 = [[NSMenuItem alloc] initWithTitle:@"menu2" action:@selector(menu2Action:) keyEquivalent:@""];

    [menu addItem:item1];
    [menu addItem:item2];

    [_statusItem setMenu:menu]; // attach
}

当然可以用NSMenu作为出路。为此,将 NSMenu 拖到故事板中的应用程序场景,并将其连接到 AppDelegate 的出口。