2012-04-16 20 views
5

Tôi muốn mô phỏng một ký tự unicode trong Mac OS X để gửi đến ứng dụng Foreground. Tôi có nghĩa là tôi có một unicode char (có thể chứa tiếng Ả Rập, Trung Quốc, vv) như 'a' và tôi muốn nhập nó. Xin lưu ý rằng tôi không cố gắng sử dụng Khóa ảo hoặc Mã khóa. Chỉ một nhân vật.Làm thế nào để mô phỏng một Unicode Char "bấm phím" trong Mac OS X bằng cách sử dụng Objective-C?

Trân trọng, Peyman Mortazavi

+1

thể tái bài của [NSEvent.KeyDown chỉ làm việc trên các Hộp tìm kiếm (trong Mac OS X)] (http://stackoverflow.com/questions/10169605/nsevent- keydown-is-only-working-on-the-search-box-in-mac-os-x) –

Trả lời

5

Tôi tìm thấy một cách tiếp cận rất tốt nhưng vẫn còn là một vấn đề. nhìn vào mã sau đó tôi viết vấn đề hiện tại là gì.

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

Vấn đề là sự kiện này được giới hạn ở một số phiên như hộp tìm kiếm và điều này là bởi vì kCGAnnotatedSessionEventTap nếu chúng ta thay đổi nó để kCGSessionEventTap sau đó nó sẽ chỉ làm việc trên Hộp tìm kiếm. Không phải bạn có thể giúp tôi kết hợp chúng để làm cho nó áp dụng sự kiện này cho mọi phiên.

Kính trọng, Peyman Mortazavi

Các vấn đề liên quan