0

NSArrayController のカスタム コントローラー キーを作成することは可能ですか? 「arrangedObjects」、「selection」などのキーがあります...独自に実装することは可能ですか? これに関する情報がどこにも見つからないようです。

これをやりたいと思った私の理由は(それができると便利なことのように思えることに加えて)次のとおりです。

属性「色」と「走行距離」を持つエンティティ「車」と、これらのオブジェクトを保持してテーブルに表示する配列コントローラー「CarArrayController」があります。テーブルの下に 2 つのテキスト フィールドが必要です。1 つは赤い車の合計走行距離を表示し、もう 1 つは青い車の合計走行距離を表示します。もちろん、すべての車の合計を表示できます: 値を "CarArrangedController.arrangedObjects.@sum.mileage" にバインドしますが、これまでのところ、配列または配列コントローラーをさらに実装しない限り、赤と青の車の合計を個別に取得できませんでした。

明らかに赤い車のみを返すコントローラー キー "arrangedRedCarObjects" を作成できれば、"CarArrangedController.arrangedRedCarObjects.@sum.mileage" にバインドできます。

私は自分の目標を達成する方法を見つけることができないようです:(

私が必要とする結果を得る方法があるはずです (それは一般的な問題のようです)、助けてください!

乾杯、

オリ

4

2 に答える 2

1

コントローラーのキーは単なる文字列ではありません。それらは NSArrayController のメソッドであり、それぞれが何らかのロジックを通過し、オブジェクトを作成し、そのオブジェクトを返します。キーの背後にロジックがないため、キーを追加することはできません。

したがって、これ以上アレイ コントローラを作成したくない場合は、より高性能なアレイ コントローラを作成する必要があります。必要なキーのメソッドを実装する NSArrayController のサブクラスを作成し、それらのメソッドでソース配列 (例: arrangedObjects) を自問し、必要な制限と再配置を実行し、その結果を返します。

新しいメソッドをソース プロパティに依存するものとして宣言することを忘れないでください (たとえば、arrangedRedCarObjects依存するものとしてarrangedObjects)。これは、キーをリストに追加するだけでは達成できないもう 1 つのことです。つまり、新しいキーがどのソース プロパティに依存する必要があるかがわからないということです。

于 2010-09-15T18:12:04.707 に答える
0

赤か青かを車に尋ねる何らかの方法がある場合は、プライマリから供給される 2 つのセカンダリ アレイ コントローラを作成できます (セカンダリ コントローラの content 配列をプライマリ コントローラの にバインドarrangedObjectsします)。車の色。

于 2010-09-15T17:49:18.317 に答える