У меня есть два разных NSArrayController, но я хотел бы использовать текст одного поля поиска, чтобы отфильтровать их обоих. Предикат будет отличаться для каждого контроллера. Является ли это возможным? Прямо сейчас я могу заставить его фильтровать только один контроллер массива за раз.
Привязка одного текста NSSearchField к двум разным объектам контроллера
comment
вы хотите сделать это во время ввода символов или при вводе?
- person Aneesh Dangayach   schedule 28.03.2014
Ответы (1)
ДА, это возможно.
Вы можете сделать это как: Этот ответ о переполнении стека от меня показывает, как делать для одной таблицы и ArrayController.
Для нескольких вам просто нужно добавить новый предикат, который будет выглядеть как Predicate2
. Пожалуйста, обратитесь к снимку экрана:
Здесь класс "Учитель и ученик" содержит свойство name
. Однако у вас может быть другое имя свойства. Также я фильтрую только по одному столбцу или свойству, вы можете выполнить поиск по нескольким столбцам/свойствам, для этого перейдите по ссылке выше.
person
Anoop Vaidya
schedule
28.03.2014
Странно, я пробовал это, но не смог заставить это работать - ничего не произошло. В итоге я использовал NSTextDelegate для улавливания изменений в поле поиска и вручную устанавливал filterPredicate на контроллере массива из этого. Однако я отмечу ваш ответ как правильный, так как предполагаю, что просто сделал что-то не так.
- person jsd; 28.03.2014
В основном во вторник я буду загружать этот же работающий код, чтобы вычислить вас в случае любой глупой ошибки. Так как в настоящее время в отпуске и без Mac со мной.
- person Anoop Vaidya; 28.03.2014