2

NSTableView我有一个典型的 Mac CoreData 应用程序,它NSArrayControllerNSTableView. 我有一个Entity(Pigeon) ,其NSString属性 (color) 显示在 中NSComboBox,以便用户可以输入自己的颜色字符串或从下拉列表中选择先前选择的颜色。这是通过绑定 to 的内容值来完成NSComboBoxPigeons.arrangedObjects.colour。这太接近我想要的了,但是因为它是鸽子存在的所有颜色的数组(而不是一组),重复值列在下拉列表中NSComboBox. 因此,例如,如果为一只鸽子的颜色输入了蓝色,并且也为第二只鸽子选择了它,那么蓝色会在列表中显示两次。

有没有办法以某种方式过滤它以删除重复值?我已经尝试制作第二个NSArrayController绑定到Pigeons.arrangedObjects.colour并设置一个NSPredicate来过滤它,但我似乎无法找出一个NSPredicate过滤掉重复值的方法。我想对颜色的值使用绑定,以便在应用程序运行时,如果添加或删除颜色(可能在输入颜色时出错),那么下拉列表将更新为只有当前为鸽子输入的颜色值。

不显示这些重复值的最佳方法是什么?

4

1 回答 1

2

我在打电话,有点懒,但我认为您正在寻找一个看起来像这样的键路径:@“@distinctunionofobects.someproperty”...或谷歌键路径运算符。

于 2012-05-01T00:56:03.730 回答