我有一个典型的 Mac CoreData 应用程序,它在带有 NSArrayController
的 NSTableView
中显示我的实体,右侧有一个面板用于编辑/显示当前选定的项目NSTableView
。我有一个 Entity
(Pigeon),其 NSString
属性(颜色)显示在 NSComboBox
中,以便用户可以输入自己的字符串颜色或从下拉列表中选择以前选择的颜色。这是通过将 NSComboBox
的内容值绑定(bind)到 Pigeons.arrangedObjects.colour
来完成的。这非常接近我想要的,但因为它是鸽子存在的所有颜色的数组(而不是集合),所以 NSComboBox
的下拉列表中列出了重复的值。因此,如果为一只鸽子输入蓝色,并且也为第二只鸽子选择蓝色,则蓝色会在列表中显示两次。
有什么办法可以过滤它以删除重复的值吗?我尝试制作第二个绑定(bind)到 Pigeons.arrangedObjects.colour 的 NSArrayController
并设置 NSPredicate
来过滤它,但我可以似乎没有找出用于过滤重复值的 NSPredicate
。我想对颜色值使用绑定(bind),以便在应用程序运行时,如果添加或删除颜色(可能在输入颜色时犯了错误),则下拉列表将更新为仅具有当前输入的鸽子颜色值。
不显示这些重复值的最佳方法是什么?
最佳答案
我正在使用手机,有点懒,但我认为您正在寻找类似以下的键路径:@“@distinctunionofobects.someproperty”...或谷歌键路径运算符。
关于cocoa - NSComboBox 显示属性的 coredata 实体绑定(bind)中的唯一项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10384615/