gpt4 book ai didi

cocoa - Mac OSX、NPAPI 中的 Cocoa 事件模型、NSView 和进程外插件

转载 作者:行者123 更新时间:2023-12-03 16:59:52 24 4
gpt4 key购买 nike

嗯,目前 chrome 有进程外插件。 Firefox 4 将使用相同的模型。

这意味着插件进程现在与浏览器进程分离。插件进程可能根本没有窗口。

我的插件基于NSView

在cocoa事件模型之前,当我可以在浏览器进程中访问NSWindow时,我所要做的就是将my_view添加为窗口中contentView的 subview 。

[[the_window contentView] addSubview:my_view] 

我不需要自己处理事件。它自己起作用了。

但是现在,我在事件处理代码中将 NPCocoaEvents 转换为 NSEvents

我必须自己更改吗?

还有 NSEvents 的一些实例,我无法制作它们,例如滚轮鼠标事件。

我该怎么办?

我是不是走错了路?

请赐教。

最佳答案

Do I have to change it myself?

如果您打算使用将 NSEvents 转发到现有 NSView 的方法,那么是的;没有办法访问原始的 NSEvents。它们不存在于插件进程中。

另一个选择是放弃尝试使用 native 控件,并进行自己的绘图和事件处理。这是大多数 NPAPI 插件的工作方式。

第三种可能性是为您的插件内容打开一个单独的窗口,并将您的 View 放在该窗口中。这在技术上不受 NPAPI 支持,也不会是完美的,但它可能是在您探索长期选项时让您的插件正常工作的一种短期方法。

Did I approach a wrong way?

是的,您之前所做的是不受支持的黑客攻击,而不是 NPAPI 的预期用途。将 View 添加到浏览器窗口假定有关浏览器 View 层次结构的信息是实现细节,并且可能随时更改。

关于cocoa - Mac OSX、NPAPI 中的 Cocoa 事件模型、NSView 和进程外插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4211950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com