我需要为表格的选定行创建一个菜单, 我可以通过覆盖
来创建-(NSMenu*)menuForEvent:(NSEvent*)evt
方法,一个表,这个特殊的菜单有两个子菜单,我能够制作子菜单 但面临以下问题
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];
先谢谢:)
答案 0 :(得分:0)
看起来,我没有正确传递选择器方法,实际上我不知道如何在Cocoa中传递函数指针,可能我正在混合Cocoa / Objective C和Normal C两者:),纠正,它,在方法只是创建视图,并在主类/接口中分配目标和操作