私はcoredataエンティティを5列のtableViewにバインドしています。 テーブルビューの並べ替えなどを管理するための配列コントローラを使用しています。SWIFT 3 OSX Cocoa Array ControllerとCoreData Binding "複数の列で検索"
私の問題はバインディングを使用して検索することです。 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ストーリーボードで元のセットに従います。
ストーリーボードの設定は次のとおりです。 述語フォーマット= projectNumberは、[CD] $値に
が含まれてい
述語設定がsearchFieldのバインディングインスペクタにあり、ArrayControllerにバインドしていることを忘れてしまいました。 –