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

È stato utile?

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.

Cacao: Fare clic destro NSStatusItem

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top