SWIFT 3 OSX Cocoa 数组控制器和 CoreData 绑定 "Search on multiple columns"

SWIFT 3 OSX Cocoa Array Controller and CoreData Binding "Search on multiple columns"

我有一个核心数据实体绑定到一个有 5 列的 table 视图。 我正在使用数组控制器来管理 table 视图排序等

我的问题是使用绑定进行搜索。我有一个绑定到 ArrayController 的 searchField,谓词格式设置为第一列数据。一切正常。我还可以更改 XCODE 中的谓词格式并在不同的列上搜索。

我遇到的问题是知道如何更改我的代码中的谓词格式以允许用户在他们选择的列上进行搜索...

我尝试按如下方式修改 ArrayController:

let predicate = NSPredicate(format: "projectNumber contains[cd] %@", searchBar.stringValue)
    searchArrayController.filterPredicate = predicate

let predicate = NSPredicate(format: "customerName contains[cd] %@", searchBar.stringValue)
    searchArrayController.filterPredicate = predicate

projectNumber 和 customerName 是我实体的属性。

当我以这种方式设置谓词时,table 数据消失了。我能够通过搜索字段的摆弄再次显示它,但它忽略了我的谓词设置,只服从 XCODE 情节提要中的原始设置。

故事板设置为: 谓词格式 = projectNumber contains[cd] $value

提前感谢您提供的任何帮助...

为每列添加谓词绑定。当您绑定搜索字段的 predicate 时,会出现一个绑定 predicate2。无需编码。