我在Mac OSX上用NPAPI
框架编写Firebreath
插件。
我需要在插件窗口中创建NSTextField。
首先,我尝试使用NSWindow
函数
init
(NSWindow *)initWithWindowRef:(void *)carbonWindowRef
但是WindowRef总是为null(我尝试在FB :: CoreGraphicsDraw事件之后得到它)
void Plugin::onCoreGraphicsDraw(FB::CoreGraphicsDraw* evt, FB::PluginWindowMacCG* win)
{
WindowRef win_ref = win->getWindowRef();
}
win_ref始终等于null。
我如何创建NSTextField
另一种方法?
答案 0 :(得分:2)
你要做的事是不可能的。现代OS X插件绘图系统没有给你一个窗口;你需要绘制一个CGContext
给你,或者卖CALayer
,这取决于你使用的模型。
在OS X NPAPI插件中无法使用本机控件。如果您想在OS X上使用本机控件,则需要构建一个独立的应用程序,而不是浏览器插件。