我正在尝试围绕Flash应用程序创建一个Cocoa包装器。我已将它加载到WebView中,我可以通过使用CGEvent API发送关键事件来控制它,如下所示:
[myWindow makeFirstResponder:myFlashWidget];
CGEventRef e1 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)keyCode, true);
CGEventPost(kCGSessionEventTap, e1);
CFRelease(e1);
当我从菜单项触发它时,效果很好。
现在我添加了一个全局键盘快捷键来触发相同的功能。我正在捕捉快捷方式(通过InstallApplicationEventHandler,RegisterEventHotKey)并调用相同的函数,但它没有效果。
我不确定如何诊断问题。首先明显的想法是关键焦点没有正确设置,但我不知道该怎么做才能做到这一点。即使窗口处于非活动状态或隐藏状态,我也希望快捷方式能够正常工作。我真的试图将事件定向到特定的NSView。我一直在阅读事件点击,但这些似乎解决了一个不同的问题。
我是Cocoa的新手,所以很可能我错过了一些明显的东西。其他人之前解决了这个问题找出问题的方法有哪些?谢谢!