1

間に関係を持つ 2 つの別個のエンティティにバインドされてNSOutlineviewいるwhoを に取り込む方法についての私の理解は正しいですか。NSTreeController

MyNSTreeControllerには、 my にバインドされた managedObjectContext がありますappDelegate。私のこれはclientObject Controllerという名前のエンティティです。Myは(およびclientの) clientCompanyにバインドされており、これにより myに会社名のリストが正しく入力されます。NSOutlineViews tableColumnNSTreeControllerkey path NSOutlineView

2 番目のエンティティーprojectsには、クライアント内のclientChildというプロパティーに逆バインドされたprojectParentという関係プロパティーがあります。この関係を通じて、関連するclientCompanyを親として持つ関連するプロジェクトエントリで my の子を構成したいと考えています。NSTreeController

これを試みるために、私はclientChildchildren key pathを myに作成し、同じコントローラの my をクライアントエンティティのclientChildNSTreeControllerに「selected」としてバインドしました。content set key pathController Key

この方法とさまざまな組み合わせは機能しないようで、さまざまなエラーが発生します。content setプログラムが起動時にエラーなしで実行され、outlineview エントリの横に開く/閉じるアイコンが表示される最後の ' ' バインド ステップを省略した場合にのみ、希望どおりに入力されていることが示されます。エントリの 1 つを開こうとすると、プロジェクトエンティティがclientChildプロパティに準拠した KVC ではないことを示すエラーが生成されます。バインディングを何度も調べましたが、問題が見つからないようです。

4

1 に答える 1

1

1 週間以上に及ぶ読書と調査の結果、答えは、これは不可能だということだと思います。これには少し驚きました。Interface Builder と NSTreeController が提供する時間を節約するためのショートカットをすべて考慮すると、私の状況はよくあることで、これは Interface Builder または組み込みクラスで実装されていると思いました。

私は自分のやりたいことをするために自分のクラスを作成しているわけではありません。うまくいけば、この答えがこれを探していて多くの答えを見つけることができなかった人に役立つことを願っています(Googleはあまり役に立ちませんでした)。

于 2011-03-03T21:36:34.533 に答える