NSMenu -> Ajout SubMenu -> recevoir événement select
-
24-10-2019 - |
Question
Je dois créer un menu pour une ligne sélectionnée d'une table, Je suis en mesure de créer en remplaçant
-(NSMenu*)menuForEvent:(NSEvent*)evt
Méthode, d'une table, ce menu particulier comporte deux sous-menu, je suis en mesure de faire du sous-menu mais face à la suite de problème
1 - Pour ajouter un sous-menu dans un MenuItem, je dois obtenir du sous-menu à partir d'une autre classe / interface, je fais appel méthode suivante
pSubMenu = [CommonUIUtil GetCommonUIMenu:pSubMenu
ActionId:self
Selector:@selector(MyMenuAction)];
Si le prototype de cette fonction est la suivante
+(NSMenu *)GetCommonStatusMenu:(NSMenu *)pMenu ActionId:(NSObject*)aDelegate Selector:(SEL)selector
La mise en œuvre comme ci-dessous,
// 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;
Je suis en mesure de voir l'image, String sur ce sous-menu, mais le problème que je suis confronté est ce menu est pas du tout Activer, quelqu'un peut-il me guider, où je fais l'erreur,
Cette fonction retourne le menu et le menu i va ajouter ci-dessous,
pMenuItem = [pCTTableMenu itemWithTitle:@"Status"];
//status menu is the menu returned from the above function,
[pMainMenu setSubmenu:pStatusMenu forItem:pMenuItem];
Merci d'avance :)
La solution
ressemble, je ne suis pas passer le mode de sélection correctement, en fait je ne sais pas comment passer le pointeur de fonction à Cocoa, probablement je mélange cacao / Objective C et normal C à la fois :), corrigé, il en la méthode qui vient créer la vue et dans la classe principale / l'interface attribuant cible et l'action