将操作分配给包含子菜单的NSMenuItem

时间:2013-01-10 15:56:00

标签: objective-c cocoa nsmenu

在Xcode中,我创建了一个带子菜单的简单菜单项(库中的子菜单菜单项)。它的子菜单有一些特定的动作,但我也希望项目本身包含一个点击处理程序。现在如果我将它连接到控制器中的动作 - 它不起作用。它甚至可以做到吗?

其他一些信息:此菜单项是应用程序自定义停靠菜单的一部分。

Google似乎没有多大帮助(或者至少我找不到“赢家”关键字)所以任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

尝试这种方式:

NSMenuItem *mainItem = [[NSMenuItem alloc] init];
[mainItem setTitle:@"Main item"];
NSMenu *submenu = [[NSMenu alloc] init];
[submenu addItemWithTitle:@"Sub item" action:nil keyEquivalent:@""];
[mainItem setSubmenu:submenu];

或者,

NSMenu *newMenu;
NSMenuItem *newItem;

// Add the submenu
newItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle:@"Flashy" action:NULL keyEquivalent:@""];
newMenu = [[NSMenu allocWithZone:[NSMenu menuZone]]initWithTitle:@"Flashy"];
[newItem setSubmenu:newMenu];
[[NSApp mainMenu] addItem:newItem];