2010-09-21 26 views
8

Ho una finestra semplice con 3 pulsanti e sto tentando di aggiungere un tasto di scelta rapida del sistema in modo da poter "premere" quei pulsanti senza dover passare a quell'app, premere un pulsante e poi torna a quello che stavo facendo.Tasto di scelta rapida a livello di sistema per un'applicazione

Qualcosa di simile Cmd +Maiusc + premere il tasto 1, Cmd +Maiusc + premere il tasto 2, ecc

Esiste un modo per raggiungere questo obiettivo in Cacao (con Objective-C)? Grazie, il codice è apprezzato poiché sono un novizio totale su Cocoa.

risposta

11

Anche io non mi piaceva PTHotKey, così ho finito per scrivere un nuovo involucro, disponibile qui:

http://github.com/davedelong/DDHotKey

modificare

I 2 file che ci servono sono:

E devi usare qualcosa di simile:

- (IBAction) registerHotkey:(id)sender { 
    DDHotKeyCenter * c = [[DDHotKeyCenter alloc] init]; 
    if (![c registerHotKeyWithKeyCode:kVK_ANSI_1 modifierFlags:(NSCommandKeyMask | NSShiftKeyMask) target:self action:@selector(hotkeyWithEvent:) object:nil]) { 
    NSLog(@"unable to register hotkey"); 
    } else { 
    NSLog(@"registered hotkey"); 
    } 
    [c release]; 
} 

- (void) hotkeyWithEvent:(NSEvent *)hkEvent { 
    NSLog(@"Hotkey event: %@", hkEvent); 
} 
+0

Grazie, scusa per il ritardo. È stata una settimana intensa. Questo sembra promettente. Un modo per non usare la struttura in carbonio? – Jessica

+0

@Jessica si, ma non proprio. Sì se stai usando 10.6 e vuoi filtrare * ogni singolo evento chiave * sul sistema cercando combinazioni specifiche da riconoscere. No se vuoi un vero comportamento hotkey. Non mi preoccuperei per il Carbonness, comunque. Questa parte di Carbon è stata aggiornata per essere compatibile a 64 bit. –

+0

OK, fammi provare. Due cose: 1) hai un link diretto a un file zip (io non uso git e non riesco a trovare un link per il download sulla pagina che hai postato). Mentre il 'come usare' è chiaro, io sono un principiante completo. Hai un piccolo frammento che posso usare come guida per, diciamo, un hotkey cmd-shift-1? – Jessica

2

PTHotKey è vecchio e viene generato (genera una serie di avvisi) sui moderni SDK. Utilizzare invece SGHotKeysLib.

Sia SGHotKeysLib che PTHotKey sono codice sorgente riutilizzabile. Devi solo aggiungere le classi al tuo progetto, quindi usarle dalle tue classi.

+1

fantastico, grazie per il suggerimento. Qualche possibilità di pubblicare un piccolo frammento? come ho detto, sto solo iniziando con Cocoa – Jessica

Problemi correlati