2012-04-16 4 views
5

मैं फोरग्राउंड एप्लिकेशन को भेजने के लिए मैक ओएस एक्स में एक यूनिकोड चरित्र अनुकरण करना चाहता हूं। मेरा मतलब है कि मेरे पास एक यूनिकोड char (अरबी, चीनी, आदि हो सकता है) जैसे 'ए' और मैं इसे इनपुट करना चाहता हूं। कृपया ध्यान दें कि मैं वर्चुअल कुंजी या कुंजी कोड का उपयोग करने की कोशिश नहीं कर रहा हूं। केवल एक चरित्रउद्देश्य-सी का उपयोग कर मैक ओएस एक्स में यूनिकोड चार "कुंजी प्रेस" अनुकरण कैसे करें?

भवदीय, Peyman Mortazavi

+1

की [NSEvent.KeyDown केवल खोज बॉक्स (मैक ओएस एक्स में) पर काम कर रहा है] संभव फिर से पोस्ट (http://stackoverflow.com/questions/10169605/nsevent- keydown-है-केवल काम-ऑन-द खोज बॉक्स में मैक-os-x) –

उत्तर

5

मैं एक बहुत अच्छा दृष्टिकोण पाया लेकिन वहां अभी भी एक समस्या है। कोड को देखो तो मैं लिखता हूं कि वर्तमान समस्या क्या है।

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); 

समस्या यह है कि इस घटना को खोज बॉक्स जैसे कुछ सत्रों तक सीमित है और इस वजह से kCGAnnotatedSessionEventTap अगर हम kCGSessionEventTapके लिए इसे बदल तो यह केवल खोज बॉक्स पर काम करेंगे है। आप इस कार्यक्रम को हर सत्र में लागू करने के लिए उन्हें गठबंधन करने में मेरी सहायता नहीं कर सकते हैं।

सादर, Peyman Mortazavi