Objective-C: NSStatusBar destro e tasto sinistro
-
18-09-2019 - |
Domanda
come rilevare sinistra o fare clic destro sull'icona di stato, e di fare qualche azione, a seconda di quale tasto del mouse (trackpad) è stato cliccato?
Io uso:
_statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain];
[_statusItem setMenu:menu];
[_statusItem setHighlightMode:YES];
Per generare icona barra di stato
Soluzione
Per rilevare i pulsanti del mouse che sono attualmente premuti, è possibile utilizzare [NSEvent pressedMouseButtons]
.
Per rilevare l'icona barra di stato viene cliccato, è possibile rilevare il menu che appare. Poco prima si apre un menu, invia un menuWillOpen: messaggio a suo delegato (se ne ha uno). Quindi implementare qualcosa di simile:
- (void)menuWillOpen:(NSMenu *)menu
{
NSLog(@"%d",[NSEvent pressedMouseButtons]);
}
È inoltre necessario impostare il delegato per il menu, ad esempio
[menu setDelegate:self];
Altri suggerimenti
ho trovato un'altra soluzione, vedi qui.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow