Nsmenu -> Agregar submenu -> recibir evento seleccionado
-
24-10-2019 - |
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 :)
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