2012-04-16 11 views
5

Voglio simulare un carattere Unicode in Mac OS X per inviare all'applicazione Primo piano. Voglio dire che ho un carattere unicode (può contenere arabo, cinese, ecc.) Come 'a' e voglio inserirlo. Si prega di notare che non sto cercando di utilizzare i tasti virtuali o codici chiave. Solo un personaggioCome simulare una "pressione dei tasti" di un Unicode in Mac Os X usando Objective-C?

Cordiali saluti, Peyman Mortazavi

+1

possibile ri-post di [NSEvent.KeyDown sta lavorando solo sulla casella di ricerca (in Mac OS X)] (http://stackoverflow.com/questions/10169605/nsevent- keydown-è-solo-lavoro-on-the-search-box-in-mac-os-x) –

risposta

5

ho trovato un buon approccio, ma c'è ancora un problema. guarda il codice, poi scrivo qual è il problema attuale.

CGEventRef downEvt = CGEventCreateKeyboardEvent(NULL, 0, true); 
CGEventRef upEvt = CGEventCreateKeyboardEvent(NULL, 0, false); 
UniChar oneChar = 'h'; 
CGEventKeyboardSetUnicodeString(downEvt, 1, &oneChar); 
CGEventKeyboardSetUnicodeString(upEvt, 1, &oneChar); 
CGEventPost(kCGAnnotatedSessionEventTap, downEvt); 
CGEventPost(kCGAnnotatedSessionEventTap, upEvt); 

Il problema è che questo evento è limitata ad alcune sessioni come la casella di ricerca, e questo è dovuto al fatto kCGAnnotatedSessionEventTap se cambiamo a kCGSessionEventTap allora funzionerà solo su casella di ricerca. Non puoi aiutarmi a combinarli per farlo applicare questo evento ad ogni sessione.

saluti, Peyman Mortazavi