Pregunta

Necesito crear un menú para una fila seleccionada de una tabla, puedo crear anulando

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

Método, de una tabla, este menú en particular tiene dos submenú, puedo hacer el submenú pero enfrentar el siguiente problema

1-Para agregar un submenú en un menuitem, necesito obtener un submenú de una clase/interfaz diferente, estoy llamando al siguiente método

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

Donde el prototipo de esta función es el siguiente

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

Implementación como se muestra a continuación,

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

Puedo ver la imagen, una cadena en este submenú, pero el problema que me enfrento es que este menú no se habilita en absoluto, ¿alguien puede guiarme, donde estoy cometiendo el error?

Esta función devolverá el menú y el menú que agregaré a continuación,

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

Gracias de antemano :)

¿Fue útil?

Solución

Parece que, no estoy pasando el método selector correctamente, de hecho, no sé cómo pasar el puntero de la función en el cacao, probablemente estoy mezclando cacao/objetivo c y normal c :), corregido, en el método solo Creación de la vista y en la clase principal/interfaz asignando el objetivo y la acción

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top