NSMenu -> Добавление SubMenu -> получить событие выбора - PullRequest
0 голосов
/ 26 января 2011

Мне нужно создать меню для выбранной строки таблицы, я могу создать, переопределив

-(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;

Я могу видеть изображение, строку на этом SubМеню, но проблема, с которой я сталкиваюсь, заключается в том, что это меню вообще не включено, может кто-нибудь подсказать мне, где я делаю ошибку,

Эта функция вернет Меню и Меню, которое я добавлю, как показано ниже,

pMenuItem = [pCTTableMenu itemWithTitle:@"Status"];
    //status menu is the menu returned from the above function,  
[pMainMenu setSubmenu:pStatusMenu forItem:pMenuItem];

Заранее спасибо :)

1 Ответ

0 голосов
/ 27 января 2011

похоже, я не передаю метод селектора должным образом, на самом деле я не знаю, как передать указатель функции в Какао, возможно, я смешиваю Какао / Objective C и Normal C оба :), исправлено, это, вметод, только создающий представление и назначающий в основном классе / интерфейсе цель и действие

...