我有一个用于OS X的旧NPAPI插件,我正在尝试重新使用Snow Leopard的Safari版本。我的问题是,当我将Safari切换到64位模式时,它会将插件环境更改为进程外模式(其中插件由32位WebKitPluginHost进程托管)。现在我的工具栏调色板在屏幕上看不到,即使它们所基于的NSPanel认为它们是可见的。文件说不建议提出窗户,但不要说它被禁止;我可以做些什么来打开我的Windows?
答案 0 :(得分:3)
最可靠的解决方案是让其他应用程序(可能通过某种IPC机制连接到您的插件)执行 Apple :
避免创建窗口。目的是让插件在浏览器窗口中运行。虽然历史上有些插件已经这样做了,但不建议在插件中创建窗口。如果您需要维护单独的窗口,则应考虑启动单独的应用程序。
从某个插件中提取窗口可能会在某些情况下起作用,并在不同的情况下完全中断。通过建议不要这样做,Apple可以随时根据自己的意愿打破以前的工作行为。
答案 1 :(得分:1)
不幸的是,可能不是。如果你正在做任何使用普通图形库(CoreAnimation,Cocoa等)无法做到的事情,你可能无法在64位Safari中使用32位插件。
但是,如果以64位模式编译插件,则可能会执行更多操作。我不知道: - /
答案 2 :(得分:0)
我知道我有点晚了。 Safari不允许插件显示NSPanel。您应该尝试使用NSWindow。我知道Apple不同意。
要显示菜单,您可以使用“popupcontextmenu”。它需要NPNSMenu,这是NSMenu的类型。