【发布时间】:2011-04-30 09:38:31
【问题描述】:
我已经安装了一个键盘挂钩:
CGEventRef myCGEventCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) {
基本上我想获取用户的键盘点击,吃掉输入,然后发布我自己的输入。
因此,如果他点击“g”,我可能想将“foo”发布到文本字段。
我正在使用CGEventPost 和CGEventSetUnicodeString 写入文本字段,如下所示:
http://www.mail-archive.com/cocoa-dev@lists.apple.com/msg23343.html
问题是我以编程方式输入的每个字符都在敲击键盘钩子。所以我不能在键盘钩子中return NULL 阻止用户输入......这也阻止了所有程序的输入!
我在 C# 的 Windows 端使用“injected”标志对它们进行了区分,一年前在这里查看我的问题:How do I use low-level 8 bit flags as conditionals?
在 Objective-C 中寻找类似的东西。
【问题讨论】:
标签: objective-c input keyboard-hook