Domanda

Ho bisogno di creare un menu per una riga selezionata di una tabella, Sono in grado di creare l'override

-(NSMenu*)menuForEvent:(NSEvent*)evt 

Metodo, di un tavolo, questo particolare Menu ha due sotto-menù, io sono in grado di rendere il Menu di ma di fronte seguente problema

1 - Per aggiungere un sottomenu in un MenuItem, ho bisogno di ottenere Sotto-Menu da una diversa classe / interfaccia, sto chiamando seguente metodo

pSubMenu = [CommonUIUtil GetCommonUIMenu:pSubMenu                                         
                                          ActionId:self                                   
                     Selector:@selector(MyMenuAction)];

Dove prototipo di questa funzione è la seguente

+(NSMenu *)GetCommonStatusMenu:(NSMenu *)pMenu ActionId:(NSObject*)aDelegate Selector:(SEL)selector

Attuazione come sotto,

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

Sono in grado di vedere l'immagine, String in questo sottomenu, ma il problema che sto affrontando è questo menu non è affatto Enable, qualcuno mi può guidare, dove sto facendo l'errore,

Questa funzione restituisce il Menu e Menu aggiungerò come sotto,

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

Grazie in anticipo :)

È stato utile?

Soluzione

appare come, io non sto passando il metodo di selezione correttamente, infatti non so come passare puntatore a funzione in Cocoa, probabilmente sto mescolando Cocoa / Objective C e C Normale entrambi :), corretto, esso, in il metodo appena creando la vista e nella classe / interfaccia principale assegnazione all'obiettivo e all'azione

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top