我有一个核心数据实体绑定(bind)到一个有 5 列的 tableView。 我正在使用数组 Controller 来管理 TableView 排序等。
我的问题是使用绑定(bind)进行搜索。我有一个绑定(bind)到 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 是我的实体的属性。
当我以这种方式设置谓词时,表数据消失了。我能够通过搜索字段的摆弄使其再次显示,但它忽略了我的谓词设置并且仅服从 XCODE Storyboard 中的原始设置。
Storyboard设置为: 谓词格式 = projectNumber contains[cd] $value
提前感谢您提供的任何帮助...
最佳答案
为每一列添加谓词绑定(bind)。当您绑定(bind)搜索字段的 predicate
时,会出现绑定(bind) predicate2
。无需编码。
关于SWIFT 3 OSX Cocoa 阵列 Controller 和 CoreData 绑定(bind) "Search on multiple columns",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40540218/