使用故事板将 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 的出口。
我正在尝试将 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 的出口。