2009-12-10 4 views
6

comment détecter un clic gauche ou un clic droit sur l'icône de la barre d'état, et de faire une action, selon le bouton de la souris (trackpad) a été cliqué?Objective-C: NSStatusBar droite et gauche cliquez sur

J'utilise:

_statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain]; 
    [_statusItem setMenu:menu]; 
    [_statusItem setHighlightMode:YES]; 

Pour générer statusBar icône

Répondre

13

Pour détecter les boutons de la souris qui sont actuellement pressés, vous pouvez utiliser [NSEvent pressedMouseButtons].

Pour détecter l'icône de la barre d'état en cours de clic, vous pouvez détecter le menu qui apparaît. Juste avant qu'un menu s'ouvre, il envoie un message menuWillOpen: à son délégué (s'il en a un). Donc, mettre en œuvre quelque chose comme ceci:

- (void)menuWillOpen:(NSMenu *)menu 
{ 
    NSLog(@"%d",[NSEvent pressedMouseButtons]); 
} 

Vous devrez également définir le délégué pour le menu, par exemple par

[menu setDelegate:self]; 
Questions connexes