Sono uno sviluppatore .Net che ha bisogno di trasferire un piccolo progetto in Mac, quindi non so quasi nulla dell'obiettivo C. In realtà il codice seguente era solo un mucchio di aggrapparsi alle cannucce e sparare in il buio.Cacao: Fare clic con il tasto destro su NSStatusItem
Cercando di creare un programma di menu Stato che apre una o un'altra finestra a seconda se si tratta di un clic sinistro o di un clic destro/ctrl + clic. Ecco quello che ho, e funziona per click sinistro solo (ovviamente):
-(void) awakeFromNib{
NSBundle *bundle = [NSbundle mainBundle];
statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain];
[statusImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForResource:@"icon" ofType:@"png"]];
[statusItem setImage:statusImage];
[statusItem setToolTip:@"Program Name"];
[statusItem setHighlightMode:YES];
[statusItem setAction:@selector(openWin:)];
[statusItem setTarget: self];
}
-(void)openWin:(id)sender{
[self openLeftWindow:sender];
}
-(IBAction)openLeftWindow:(id)sender{
//Code to populate Left Click Window
[leftWindow makeKeyAndorderFront:nil];
}
-(IBAction)openRightWindow:(id)sender{
//Code to populate Right Click Window
[rightWindow makeKeyAndorderFront:nil];
}
Mi sembra che la soluzione sarebbe o un'istruzione if nella funzione openwin() per determinare quale pulsante viene cliccato (o se si tiene premuto ctrl) quindi eseguire il codice appropriato o per rendere il menu consapevole dei clic di sinistra e di destra. Ma nessuno di questi ha funzionato quando ho tentato di farlo.
Grazie In anticipo.
Sto assumendo che è solo un errore di battitura che sia l'openLeftWindow: e openRightWindow: metodi fanno la stessa cosa. Altrimenti, questa domanda sarebbe inutile. – ughoavgfhw
corretti, fanno cose diverse. Mi dispiace per l'errore di battitura – Dan