ドキュメントベースの Cocoa アプリケーションに取り組んでいます。NSPanel
起動時に、 「新規ドキュメントの作成」や「既存のドキュメントを開く」などの一般的なアクションのボタンを含む「ウェルカム パネル」(タイプ) がユーザーに表示されます。これらのアクションは、[ファイル] メニューの一致する項目と同様に、ファーストレスポンダーのnewDocument:
およびアクションにそれぞれリンクされています。openDocument:
すべてが期待どおりに機能します... 3 つの注意事項があります。
- 新しいドキュメントを作成または開いたときにウェルカム パネルが閉じられません。
- ドキュメント ウィンドウは、作成時にフォーカスがありません。
- 開いているドキュメント ウィンドウでは、開いているファイルがウィンドウのタイトル バーに表示されません。同様に、期待どおりに、「無題」、「無題 2」、「無題 3」などのタイトルで新しいドキュメント ウィンドウが作成されません。(私がこれについて言及しているのは、それが煩わしいという理由だけでなく、何がうまくいかないのかについての洞察をもたらすかもしれないからです.)
アプリケーションコントローラーをウェルカムパネルのデリゲートにすることで、#1を部分的に解決しました。windowDidResignKey:
[既存のドキュメントを開く] ボタンをクリックすると、(ファイル ブラウザー ダイアログが開かれているため) パネルはそのキー ステータスを辞任するので、デリゲートのメソッドでパネルを閉じることができます。ただし、新しいドキュメントを作成するときに、投稿された通知や呼び出されたデリゲート メソッドが見つからないため、新しいドキュメントを作成するときにパネルを閉じる方法がわかりません。そして最終的には、文書ウィンドウが作成されたときにフォーカスを得られないため、#2 は依然として問題です。
サブクラス化しただけNSDocument
です。カスタム ドキュメントやウィンドウ コントローラーはまったく使用していません。また、 の動作が異なる可能性がNSWindow
あると考えて、パネルを に変更してみましたが、同じ問題が発生しています。NSWindow