我有一个典型的Mac CoreData应用程序,它在NSTableView
中使用NSArrayController
显示我的实体,在右侧显示一个面板,用于编辑/显示NSTableView
中当前选定的项目。我有一个Entity
(鸽子)NSString
属性(颜色)显示在NSComboBox
中,以便用户可以为颜色输入自己的字符串或选择以前选择的颜色从下拉列表中。这是通过将NSComboBox
的内容值绑定到Pigeons.arrangedObjects.colour
来完成的。这与我想要的接近,但因为它是鸽子所有颜色的数组(而不是一组),所以NSComboBox
的下拉列表中列出了重复的值。因此,如果例如为一只鸽子的颜色输入蓝色,并且还为第二只鸽子选择了蓝色,那么蓝色将在列表中显示两次。
是否有某种程度上,我可以过滤这个以删除重复值?我已尝试制作第二个NSArrayController
,该Pigeons.arrangedObjects.colour
绑定到NSPredicate
并设置NSPredicate
来过滤它,但我似乎无法找出{{1}}过滤掉重复的值。我想使用绑定作为颜色的值,以便在应用程序运行时,如果添加或删除颜色(可能在输入颜色时出错),则下拉列表将更新为仅具有目前输入的鸽子颜色值。
不显示这些重复值的最佳方法是什么?
答案 0 :(得分:2)
我在手机上有点懒,但我认为你正在寻找一个看起来像这样的密钥路径:@“@ distinctunionofobects.someproperty”......或google keypath运营商。