【问题标题】:Attach NSMenu to NSStatusItem with Storyboard使用 Storyboard 将 NSMenu 附加到 NSStatusItem
【发布时间】:2015-01-08 14:38:00
【问题描述】:
我正在尝试将 NSMenu 项目附加到 NSStatusItem 以在单击我的 Mac OS 菜单栏应用程序时获得菜单。
我是 Mac 编程的新手,我在网上搜索过教程。但是,我找到的所有材料都涉及使用文件 Xib 添加NSMenu 并将其链接到现有代码。但是,我的项目中没有这样的文件,它只包含情节提要文件。
希望你能帮忙。
干杯
【问题讨论】:
标签:
xcode
macos
nsmenu
nsstatusitem
【解决方案1】:
您可以像这样以编程方式创建菜单并将其设置为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 的插座。