2013-01-10 17 views
0

在Xcode中,我創建了一個帶子菜單的簡單菜單項(來自庫的子菜單菜單項)。它的子菜單有一些特定的操作,但我也希望項目本身包含一個點擊處理程序。現在,如果我將它連接到控制器中的操作 - 它不起作用。它甚至有可能做到這一點?將操作分配給包含子菜單的NSMenuItem

某些附加信息:此菜單項是應用程序的自定義停靠菜單的一部分。

谷歌似乎沒有太大的幫助(或者至少我找不到「贏家」的關鍵字),所以任何想法都讚賞。

回答

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]; 
+0

我覺得我沒問這個問題的權利。你所有的(或者我的)代碼都能正常工作,直到......我們開始處理DOCK菜單。一切都可以在App菜單中使用,但只要將菜單項添加到擴展塢(右鍵單擊)菜單中 - 操作將停止使用具有子項目的項目。 – Marius

相關問題