如何使用Objective-C在Mac Os X中模拟Unicode Char"按键"?

Pey*_*man 6 unicode macos objective-c keypress simulate

我想模拟Mac OS X中的unicode字符以发送到Foreground应用程序.我的意思是我有一个unicode char(可以包含阿拉伯语,中文等),比如'a',我想输入它.请注意,我不是在尝试使用虚拟密钥或密钥代码.只有一个角色.

真诚的,Peyman Mortazavi

Pey*_*man 7

我找到了一个非常好的方法,但仍然存在问题.看看代码,然后我写出当前的问题.

    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 );
Run Code Online (Sandbox Code Playgroud)

问题是这个事件仅限于某些会话,如搜索框,这是因为kCGAnnotatedSessionEventTap,如果我们将其更改为kCGSessionEventTap,那么它只适用于搜索框.你不能帮我把它们结合起来,使它适用于每个会话.

此致,Peyman Mortazavi