J'ai une petite application de cacao qui fonctionne habituellement en arrière-plan (en tant qu'agent). Parfois, j'aimerais pouvoir faire apparaître un menu contextuel (aucune fenêtre ou autre visible pour l'instant).NSMenu ne commence pas le suivi
Comme je ne Snow Leopard je ciblage essayé ceci:
if (windows) {
NSMenu *theMenu = [[[NSMenu alloc] initWithTitle:@"test"] autorelease];
[theMenu setShowsStateColumn:NO];
[theMenu setAutoenablesItems:NO];
for (id item in windows) {
NSString *labelText = @"some text";
NSMenuItem *theMenuItem = [[[NSMenuItem alloc] initWithTitle:labelText
action:@selector(menuItemSelected:)
keyEquivalent:@""] autorelease];
[theMenuItem setTarget:self];
[theMenuItem setRepresentedObject:item];
[theMenuItem setEnabled:YES];
[theMenuItem setImage:icon];
[theMenu addItem:theMenuItem];
}
[theMenu popUpMenuPositioningItem:nil atLocation:[NSEvent mouseLocation] inView:nil];
}
Le menu popsup parfaitement, mais si je passe la souris les éléments avec le curseur de la souris, ils ne pas mettre en évidence et je ne peux pas cliquer dessus.
Le menuItemSelected: méthode ressemble à ceci:
-(IBAction)menuItemSelected:(id)sender {
}
Toute idée de ce que je fais mal?
Merci! Je vais essayer ça. Pour l'instant j'ai créé une fenêtre qui ressemble et se comporte comme un nsmenu ... J'ai déjà essayé de créer un NSPanel non-activant mais je pense que j'ai peut-être manqué makeKeyAndOrderFront .. Si je me souviens bien, je n'ai utilisé que orderFront. Je signalerai si votre solution fonctionne bientôt. – Measunny
Malheureusement, cela ne semble pas fonctionner non plus :-( Cela fonctionne si j'ajoute un NSButton à la fenêtre, définir mon menu comme le menu du bouton, puis cliquez avec le bouton droit sur le bouton (menuForEvent est appelé alors) Mais je pense que je peux Ne faites pas ça par programme non plus (sans que l'utilisateur clique droit sur le bouton ... ok envoie un mousevent sur le bouton, mais c'est vraiment moche) – Measunny