Контроллер массива SWIFT 3 OSX Cocoa и поиск привязки CoreData по нескольким столбцам

У меня есть объект coredata, привязанный к tableView с 5 столбцами. Я использую контроллер массива для управления сортировкой таблицы и т.д.

Моя проблема связана с поиском с использованием привязок. У меня есть searchField, связанный с ArrayController, и формат предиката установлен для первого столбца данных. Все работает нормально. Я также могу изменить формат предиката в 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: Predicate Format = номер проекта содержит [cd] $value

заранее спасибо за любую помощь, которую вы можете предоставить...


person John Carto    schedule 11.11.2016    source источник
comment
Забыл упомянуть, что настройки предиката находятся в инспекторе привязок searchField, где я привязываю его к ArrayController.   -  person John Carto    schedule 11.11.2016


Ответы (1)


Добавьте привязку предиката для каждого столбца. При привязке predicate поля поиска появляется привязка predicate2. Кодирование не требуется.

person Willeke    schedule 12.11.2016
comment
Для всех, кто сталкивается с этим и ищет, как выбрать столбцы для поиска во время выполнения. Apple предоставила всплывающее меню поиска с использованием NSMenu и возможность установить предикат для каждого столбца, который установлен на панели привязок Xcode... возможно, это не лучший способ представить варианты поиска столбца, на мой взгляд, я бы хотел немного больше гибкости в представлении, но, по крайней мере, это очень легко реализовать.... - person John Carto; 12.11.2016