3

Cocoa でドキュメント ベースのアプリを構築したいのですが、さまざまな種類のドキュメントを作成して処理できるようにします。Word、Excel、Powerpoint をすべて 1 つのアプリケーションで考えてみてください。ただし、すべてのウィンドウはドキュメントの種類によって異なります。

ストレージには CoreData を使用します。ドキュメントの種類を指定するフィールドを追加することを考えています。ドキュメントの末尾はすべて同じでなければならないからです。

では、いくつかの独立したアプリを作成することなく、それを行うための最良の方法は何でしょうか? Interface Builder でこれを作成するにはどうすればよいですか? これをどのようにコーディングしますか?

詳細なソースコードなどは必要ありません。これを行う方法の一般的なアイデアだけで、残りを理解します。

前もって感謝します!

4

2 に答える 2

15

これは、CocoaDocumentシステムが明示的に実行するように設計されていることです。Appleはドキュメントを提供していますが、ここにハイライトがあります。

  • 各種類のドキュメントは、のサブクラスですNSDocument。Core Dataを使用している場合は、NSPersistentDocument代わりにクラスのベースにします。(Appleには、ドキュメントベースのアプリケーションでCore Dataを使用する方法に関する基本的なチュートリアルがあります)
  • Info.plistを使用して、アプリケーションで開くことができるドキュメントの種類と使用するドキュメントクラスについてCocoaに通知します。
  • NSDocumentサブクラスには1つ以上のNSWindowControllerオブジェクトが関連付けられており、各オブジェクトは単一のウィンドウを表します。ウィンドウが1つしかない場合は、サブクラス化する必要はありませんNSWindowController。UIロジックをドキュメントサブクラスに配置できます。ただし、コードをよりクリーンにするために、サブクラス化することを強くお勧めしNSWindowControllerます。
  • NSWindowControllerNSDocumentサブクラス化しないことにした場合NSWindowController)InterfaceBuilderで構築したNIBからウィンドウをロードできます。実際、これはドキュメントウィンドウを作成するための推奨されるアプローチです。

うまくいけば、これはあなたにココアでこれにアプローチする方法の一般的な考えを与えるでしょう。

于 2010-01-14T16:25:05.163 に答える
1

ドキュメント タイプごとに NIB を作成することから始めます。およびNSDocumentそれぞれのサブクラス (ここでのセットアップには、既存の document-based-app-example-NIB を使用します)。次に、これらのクラスを設定して、アプリケーションのプロパティ リストでさまざまなドキュメント タイプを処理します。私が覚えている限りでは、XCode のどこかにこのための便利なツールが隠されています。

それが実行されると、ほとんどの詳細は自動的に処理されるはずです。しかし、まだファイル メニューを少しいじる必要があるかもしれません。また、デフォルトのドキュメント タイプの設定などに問題があったことを覚えているようです。

全体として、1 種類のドキュメント用のアプリを作成するよりもそれほど複雑ではありません。

PS:異なるファイルタイプが本当に必要であることを確認してください。場合によっては、同じファイルを複数の異なるビューで表示する方が適切な場合があります。ちょっとした考え。:)

于 2010-01-14T15:23:51.580 に答える