1

こんにちは、NSTreeController を使用して NSOutlineView を制御しています。このアプリケーションは、ブックマークをファイルからアプリケーションにロードします。ADC の SourceView の例のように:

http://developer.apple.com/mac/library/samplecode/SourceView/index.html

私の質問は、ユーザーが変更を加えたら、ブックマークをファイルに保存する方法です。アプリケーションの内部で配列/ツリーを維持し、終了する前に保存する必要がありますか、それとも簡単な方法はありますか?

4

1 に答える 1

2

MyWindowController.mのpopulateOutlineメソッドで行われているアクションを逆にしたいとします。このメソッドは、plist を 1 つのディクショナリに読み取り、そのディクショナリから値を読み取り、それを使用してツリーを構築します。そのメソッドから始めて、コードに従って、ツリーがどのように構築されているかを確認します。BaseNodeおよびChildNodeクラスを使用して、データ モデルをツリーとして構築しています (なぜNSTreeNodeを使用しなかったのかはわかりません)。その手順を逆にして、最終的に NSDictionary にする必要があります。その後、 writeToFile:atomically:を使用して辞書をディスクに保存できます。

これは、作成したいほど複雑になる可能性があります。たとえば、現在のコードは別のスレッドで辞書ファイルをロードするため、別のスレッドで保存することもできます。または、編集ごとに別のスレッドで保存することもできます。

于 2010-02-24T17:05:14.680 に答える