搜索将NSArrayController选择重置为无

时间:2012-10-06 09:36:38

标签: cocoa nstableview cocoa-bindings nsarraycontroller nssearchfield

我通过NSTableViewNSArrayControllercontent绑定了selection indexes。到目前为止一切都很棒 - 内容显示等等。

enter image description here

现在NSSearchField通过filterPredicate绑定到数组控制器,并且要搜索的数组内容实例的属性。 搜索/过滤表格视图效果很好;表格视图仅显示匹配的条目。

,如果现有选择不在搜索结果中,则搜索会重置NSTableView上的选择。更糟糕的是,不仅在搜索过程中,而且在搜索结束后,桌面视图中没有选择。

NSArrayController设置为避免空选择

然而,调试阵列控制器的selection indexes表明搜索会将它们重置为空集。不知道该怎么做..

有关如何在此方案中正确配置绑定的任何提示真正,以防止空选择非常受欢迎!

1 个答案:

答案 0 :(得分:3)

不幸的是,阵列控制器不会跟踪和恢复选择,因为它们的排列对象会发生变化。您必须自己在代码中执行此操作。您可以使用KVO跟踪当前选择,以观察阵列控制器上的选择。您还可以观察控制器排列的对象,以了解它何时因过滤而发生变化。每次更改时,只需将当前选择设置回跟踪值(假设其仍处于排列对象中)或将选择设置为新值。