6

NSWindow のカスタム サブクラスの childWindow を parentWindow (これも NSWindow のカスタム サブクラス) に追加しました。childWindow には NSBorderlessWindowMask があり、canBecomeKeyWindow: はオーバーライドされて YES を返し、canBecomeMainWindow: は NO を返します。

childWindow は、parentWindow でサイズ変更するように設定されています。だから私は、子ウィンドウのビューが親ウィンドウの一部であるという錯覚を作りたい. 主なアイデアは、ドキュメント ベースのアプリケーションによって作成されたドキュメント ウィンドウをメイン ウィンドウ内に配置して、ドキュメント間を切り替えるためのタブ付きインターフェイス (ブラウザーの場合と同様) を提供することです。

私の問題は、childWindow のビューの 1 つをクリックするたびに、parentWindow (メイン ウィンドウ) がフォーカスを失い、信号機のボタンが灰色になることです。これは明らかに私が達成したいこととは反対です。

私はこの答えを見つけました: キーウィンドウステータスなしでNSPanelファーストレスポンダーでNSViewを作成します

しかし、(メイン ウィンドウの) isKeyWindow: をオーバーライドして常に YES を返すようにしても、childWindow をクリックするとタイトル バーがグレー表示されます。

私もこのアドバイスに従おうとしました: http://www.cocoabuilder.com/archive/cocoa/143945-non-focused-child-window.html

しかし、「nextResponder の直前のレスポンダー チェーンに子ウィンドウを含める」が何を意味するのかわかりません。canBecomeKeyWindow: を使用して (childWindow に対して) NO を返すと、子内のビューは決してキーになることができず、常にグレー表示されます。

私が間違っている手がかりはありますか?

追加: childWindow にキーステータスを与えずに、childWindow FirstResponder でビューを作成することは可能ですか?

4

1 に答える 1