NSArrayControllerを介してNSMutableArrayにバインドするNSTableViewがあります。配列には派生クラスがあります。テーブルの最初の数列は、基本クラスに存在するプロパティにバインドされています。それはすべてうまくいきます。
問題が発生しているのは、行が1つの特定のサブクラスにマップされている場合にのみ入力する必要がある列です。列が表示することを意図したプロパティは、基本クラスの観点からは意味がないため、そのサブクラスにのみ存在します。ユーザーは、最初の2つの列から、3番目の列のセルが入力/編集可能であるかどうかを知ることができます。
3番目の列の値のバインディングはarrangedObjectsにあり、「foo.name」のようなモデルパスがあります。ここで、fooはサブクラスのプロパティです。ただし、階層内の他のサブクラスはfooのキー値に準拠していないため、これは機能しません。
私の唯一の選択は、fooを基本クラスのプロパティにして、全員がそれに応答するようにすることだと思われますが、これにより、モデルオブジェクトのインターフェイスが乱雑になります。
誰かがこの状況のためのすっきりとしたデザインを思いついたことがありますか?それは珍しいことではありません(私はCocoaの比較的新参者であり、バインディングの詳細を学んでいます)。