問題タブ [document-architecture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1175 参照

cocoa - 新しいドキュメントを作成または開くときに NSPanel を閉じるにはどうすればよいですか?

ドキュメントベースの Cocoa アプリケーションに取り組んでいます。NSPanel起動時に、 「新規ドキュメントの作成」や「既存のドキュメントを開く」などの一般的なアクションのボタンを含む「ウェルカム パネル」(タイプ) がユーザーに表示されます。これらのアクションは、[ファイル] メニューの一致する項目と同様に、ファーストレスポンダーのnewDocument:およびアクションにそれぞれリンクされています。openDocument:

すべてが期待どおりに機能します... 3 つの注意事項があります。

  1. 新しいドキュメントを作成または開いたときにウェルカム パネルが閉じられません。
  2. ドキュメント ウィンドウは、作成時にフォーカスがありません。
  3. 開いているドキュメント ウィンドウでは、開いているファイルがウィンドウのタイトル バーに表示されません。同様に、期待どおりに、「無題」、「無題 2」、「無題 3」などのタイトルで新しいドキュメント ウィンドウが作成されません。(私がこれについて言及しているのは、それが煩わしいという理由だけでなく、何がうまくいかないのかについての洞察をもたらすかもしれないからです.)

アプリケーションコントローラーをウェルカムパネルのデリゲートにすることで、#1を部分的に解決しました。windowDidResignKey:[既存のドキュメントを開く] ボタンをクリックすると、(ファイル ブラウザー ダイアログが開かれているため) パネルはそのキー ステータスを辞任するので、デリゲートのメソッドでパネルを閉じることができます。ただし、新しいドキュメントを作成するときに、投稿された通知や呼び出されたデリゲート メソッドが見つからないため、新しいドキュメントを作成するときにパネルを閉じる方法がわかりません。そして最終的には、文書ウィンドウが作成されたときにフォーカスを得られないため、#2 は依然として問題です。

サブクラス化しただけNSDocumentです。カスタム ドキュメントやウィンドウ コントローラーはまったく使用していません。また、 の動作が異なる可能性がNSWindowあると考えて、パネルを に変更してみましたが、同じ問題が発生しています。NSWindow

0 投票する
2 に答える
1327 参照

objective-c - Cocoaドキュメントベースのアプリ:ビューアのみのファイルタイプの場合は、[保存]を[名前を付けて保存]に変更します

私は(現在少なくとも)基本的なテキストエディタとして機能するCocoaドキュメントベースのアプリを持っています。.txt、.rtf、および.rtfdを保存し、それらに加えて.docおよび.docxをロードします。.docまたは.docxファイルを開いて編集し、閉じようとすると、保存するように通知されますが、アプリケーションはこれらの種類のファイルのビューアにすぎないため、保存オプションは何もしません。.docや.docxなど、表示のみが可能なタイプの「名前を付けて保存」として機能させるにはどうすればよいですか?