如何使用Objective-C在Mac Os X中模拟Unicode字符的“按键”?

6

我想在Mac OS X上模拟一个Unicode字符并发送给前台应用程序。我的意思是,我有一个Unicode字符(可以包含阿拉伯文、中文等),比如'a',我想输入它。请注意,我不是试图使用虚拟键或键码。只需要一个字符。

祝好, Peyman Mortazavi


1个回答

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

问题在于此事件仅限于某些会话,如搜索框,这是因为 kCGAnnotatedSessionEventTap ,如果我们将其更改为 kCGSessionEventTap ,那么它只能在搜索框中工作。请问您能否帮助我将它们组合起来,以便将此事件应用于所有会话。

谢谢, Peyman Mortazavi


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接