我通过NSTableView
和NSArrayController
与content
绑定了selection indexes
。到目前为止一切都很棒 - 内容显示等等。
现在NSSearchField
通过filterPredicate
绑定到数组控制器,并且要搜索的数组内容实例的属性。
搜索/过滤表格视图效果很好;表格视图仅显示匹配的条目。
但,如果现有选择不在搜索结果中,则搜索会重置NSTableView
上的选择。更糟糕的是,不仅在搜索过程中,而且在搜索结束后,桌面视图中没有选择。
NSArrayController
设置为避免空选择。
然而,调试阵列控制器的selection indexes
表明搜索会将它们重置为空集。不知道该怎么做..
有关如何在此方案中正确配置绑定的任何提示真正,以防止空选择非常受欢迎!
答案 0 :(得分:3)
不幸的是,阵列控制器不会跟踪和恢复选择,因为它们的排列对象会发生变化。您必须自己在代码中执行此操作。您可以使用KVO跟踪当前选择,以观察阵列控制器上的选择。您还可以观察控制器排列的对象,以了解它何时因过滤而发生变化。每次更改时,只需将当前选择设置回跟踪值(假设其仍处于排列对象中)或将选择设置为新值。