使用Cocoa将密钥发送到隐藏/最小化窗口

时间:2010-01-27 15:19:47

标签: cocoa events

我正在尝试围绕Flash应用程序创建一个Cocoa包装器。我已将它加载到WebView中,我可以通过使用CGEvent API发送关键事件来控制它,如下所示:

[myWindow makeFirstResponder:myFlashWidget];
CGEventRef e1 = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)keyCode, true);
CGEventPost(kCGSessionEventTap, e1);
CFRelease(e1);

当我从菜单项触发它时,效果很好。

现在我添加了一个全局键盘快捷键来触发相同的功能。我正在捕捉快捷方式(通过InstallApplicationEventHandler,RegisterEventHotKey)并调用相同的函数,但它没有效果。

我不确定如何诊断问题。首先明显的想法是关键焦点没有正确设置,但我不知道该怎么做才能做到这一点。即使窗口处于非活动状态或隐藏状态,我也希望快捷方式能够正常工作。我真的试图将事件定向到特定的NSView。我一直在阅读事件点击,但这些似乎解决了一个不同的问题。

我是Cocoa的新手,所以很可能我错过了一些明显的东西。其他人之前解决了这个问题找出问题的方法有哪些?谢谢!

1 个答案:

答案 0 :(得分:0)

我(大部分)在这里想出来了:How do I send key events to a Flash movie in WebKit?