NPAPI を使用して safari プラグインを作成しました。プラグインに NSView を追加したいと考えています。
NPWindow throw function NPP_SetWindow(NPP instance, NPWindow* window)を取得しようとすると、2 番目のパラメーターは nil です。
私のプラグインはウィンドウレスだと思いますが、ウィンドウ付きのプラグインを作成する方法がわかりません。
NPAPI を使用して safari プラグインを作成しました。プラグインに NSView を追加したいと考えています。
NPWindow throw function NPP_SetWindow(NPP instance, NPWindow* window)を取得しようとすると、2 番目のパラメーターは nil です。
私のプラグインはウィンドウレスだと思いますが、ウィンドウ付きのプラグインを作成する方法がわかりません。
Mac上のNPAPIは、ウィンドウモードとしてNSViewをサポートしていません。サポートされているモードは2つあります。
以前はQuickDrawモードがありましたが、これは非推奨です。
詳細については、このテーマに関するStuartMorganの優れたブログ投稿を参照してください。
NSViewをCoreGraphicsコンテキストにレンダリングすることは可能ですが、すべてのイベントをプロキシする必要があり、完璧にはほど遠いです。
編集:あなたの質問への答えをさらに説明するために、ウィンドウパラメータがNULLである理由(ObjCではなくCapiであるため、nilではなくNULLです...同じものであるにもかかわらず=])はCocoaイベントモデルは、描画イベントの一部としてCGContextRefを取得します。これは、そのイベントのコンテキスト中にのみ有効です。