NSMenu -> Добавление SubMenu -> получить событие выбора
Мне нужно создать меню для выбранной строки таблицы, я могу создать путем переопределения
-(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];
Заранее спасибо:)
1 ответ
Похоже, я не передаю метод выбора должным образом, на самом деле я не знаю, как передать указатель на функцию в Какао, возможно, я смешиваю Какао /Objective C и Normal C оба:), исправлено, это, в методе просто создание вида и в основном классе / интерфейсе назначение цели и действия