2012-04-30 6 views
2

NSTableViewNSTableViewのエンティティを表示する典型的なMac CoreDataアプリケーションと、右側にある現在選択されている項目を編集/表示するパネルがあります。 NSTableView。私はNSComboBoxにプロパティ(色)が表示されているEntity(ピジョン)を持っているので、ユーザーは自分の色を入力したり、ドロップダウンリストから以前に選択した色を選択できます。これは、NSComboBoxのコンテンツ値をPigeons.arrangedObjects.colourにバインドすることによって行われます。これは私が欲しいものに近いですが、ハトのために存在するすべての色の配列(そしてセットではない)なので、重複値はNSComboBoxのドロップダウンリストにリストされています。たとえば、1つのピジョンの色としてブルーが入力され、もう1つのピジョンの色が選択されている場合、青はリストに2回表示されます。NSComboBoxは、プロパティのcoredataエンティティバインディングから一意の項目を表示します

多少なりとも、どういうわけかこれをフィルタリングして重複値を削除できますか?私はPigeons.arrangedObjects.colourにバインドされているNSArrayControllerを作成し、それをフィルタリングするようにNSPredicateを設定しようとしましたが、重複する値を除外するためにNSPredicateを見つけることはできません。色の値にバインディングを使用して、アプリケーションの実行中に色が追加または削除された場合(色を入力する際に​​間違いがあった可能性があります)、ドロップダウンリストが更新され、現在、ピジョンの色値が入力されています。

重複した値を表示しない最も良い方法は何ですか?

+1

+1アメリカの「色」をあなたのコードに使用することを拒否しました:-) –

+0

:DIは色を色に変更すると思っていましたが、質問するだけで馬鹿だと決めました:) – DonnaLea

答えて

2

私は自分の携帯電話に少し怠け者ですが、私はあなたのようなキーパスを探していると思います:@ "@ distinctunionofobects.someproperty" ...またはGoogleのキーパス演算子。

+2

ええ、そうです良いアイデアです私は私の答えを削除しました。 keypath演算子は '@ distinctUnionOfObjects'なので、' Pigeons.arrangedObjects。@ distinctUnionOfObjects.colour'を使います。 –

+0

ありがとうございます。 '@ distinctUnionOfObjects'の使い方を正確に述べてくれたRobに感謝します。 – DonnaLea

関連する問題