テーブルの選択した行のメニューを作成する必要があります。オーバーライドして作成できます
-(NSMenu*)menuForEvent:(NSEvent*)evt
テーブルの方法、この特定のメニューには2つのサブメニューがあり、サブメニューを作成できますが、次の問題に直面しています
1-MenuItemにサブメニューを追加するには、別のクラス/インターフェイスからサブメニューを取得する必要があります。次のメソッドを呼び出しています
pSubMenu = [CommonUIUtil GetCommonUIMenu:pSubMenu
ActionId:self
Selector:@selector(MyMenuAction)];
この関数のプロトタイプは次のとおりです。
+(NSMenu *)GetCommonStatusMenu:(NSMenu *)pMenu ActionId:(NSObject*)aDelegate Selector:(SEL)selector
以下のように実装します。
// pStrArray is Array of String to have the Menu Title
for(int idx =0;idx<[pStrArray count];idx++)
{
pTempStr = [pStrArray objectAtIndex:idx];
pImage = [CommUIController CommonGetImage:[CommonUIUtil GetImageByStatus:pTempStr]];
[pImage setSize:NSMakeSize(20,20)];
pMenuItem =[[NSMenuItem alloc]init];
[pMenuItem setTitle:pTempStr];
// this should set the selector
[pMenuItem setAction:selector];
// Setting the target
[pMenuItem setTarget:aDelegate];
[pMenuItem setImage:pImage];
[pMenuItem setEnabled:YES];
[pMenu addItem:pMenuItem];
[pMenuItem release];
}
return pMenu;
このサブメニューで画像、文字列を見ることができますが、私が直面している問題は、このメニューがまったく有効になっていないことです。
この関数はメニューを返し、メニューを以下のように追加します。
pMenuItem = [pCTTableMenu itemWithTitle:@"Status"];
//status menu is the menu returned from the above function,
[pMainMenu setSubmenu:pStatusMenu forItem:pMenuItem];
前もって感謝します :)