0

我遇到了麻烦,因为我的插件想在使用command+o时打开文件对话框,但是 safari 持有这个事件。有人有解决方案吗?

4

2 回答 2

0

我强烈怀疑您对此无能为力。作为插件,您是二等公民,是过程中的客人。

于 2012-10-25T15:04:20.990 回答
0

您可以接受命令事件,您必须在 NP_GetEntryPoints 方法中为 NPPluginFuncs 结构的事件成员设置回调。

在该方法中,您将收到所有鼠标和键盘事件,以及窗口焦点事件。您可以将第二个参数从 void* 转换为 NPCocoaEvent,您将在其中找到所有必要的参数,例如事件类型、鼠标状态、键和焦点数据。

在深入研究 NPCocoaEvent 的“数据”联合之前,请检查您正在处理的事件类型,否则您可以获得 EXC_BAD_ACCESS。

我在与浏览器共享命令时遇到问题,在我的情况下,Command+O 应该只触发插件的文件打开对话框,但它也会触发浏览器打开文件对话框。假设,为事件处理方法返回 TRUE 应该报告插件处理事件的浏览器,但我还没有运气。

于 2013-01-18T16:16:33.713 回答