1

NSTreeNodeで表されるオブジェクトとなるオブジェクト(OTNodeDatum)(OutlineTestの場合はOT)を使用するセットアップがあります。NSTreeNodeは、NSTreeControllerの属性ページに表示されるクラスです。

ドキュメントベースのアプリがありますが、コアデータはありません。MyDocument initで、1つのアイテムを含むNSMutableArray、単一のプロパティ(yes、name)を含む表現されたオブジェクトを持つNSTreeNodeを使用してコンテンツを設定しました。

[追加]ボタン、[子の追加]ボタン、[削除]ボタン、インターフェイスビルダーを介してNSTreeControllerの追加アクションに接続など。

それはある程度まで機能します。

追加を行うと、編集できる新しい空白行が表示されますが、セルを離れると、挿入されたテキストが消えます。

削除すると、物事が削除されます。

子を追加しても何も起こりません。

新しいツリーノードの追加に加えて、子の追加と新しい表現されたオブジェクトの追加に関して正しい動作を得るには、NSTreeNodeまたはNSTreeControllerのいずれかをサブクラス化する必要があると思います。

これは正しい方向に進んでいますか?NSTreeControllerをサブクラス化する場合、正しいことを実行するために、add、addChildをオーバーライドするだけでしょうか。そして、私は何を台無しにすることができますか?私は長い間探していましたが、これに関するガイダンスを見つけることができないようです。

ありがとう。

ジョンV

4

1 に答える 1

2

物事を行う正しい方法、または少なくとも方法は、使用することであるように思われます

-(void)insertObject:(id)object atArrangedOjectIndexPath:(int)index;

最初representedObjectに作成し、その表現されたオブジェクトで新しいものを作成NSTreeNodeしてから、それを挿入します。単に追加ボタンをツリーコントローラーに接続するよりも多くの作業が必要ですが、(うまくいけば)使用NSTreeNodeする利点がそれを補います。

于 2010-06-01T14:43:21.907 に答える