Привязка одного текста NSSearchField к двум разным объектам контроллера

У меня есть два разных NSArrayController, но я хотел бы использовать текст одного поля поиска, чтобы отфильтровать их обоих. Предикат будет отличаться для каждого контроллера. Является ли это возможным? Прямо сейчас я могу заставить его фильтровать только один контроллер массива за раз.


person jsd    schedule 28.03.2014    source источник
comment
вы хотите сделать это во время ввода символов или при вводе?   -  person Aneesh Dangayach    schedule 28.03.2014


Ответы (1)


ДА, это возможно.

Вы можете сделать это как: Этот ответ о переполнении стека от меня показывает, как делать для одной таблицы и ArrayController.

Для нескольких вам просто нужно добавить новый предикат, который будет выглядеть как Predicate2. Пожалуйста, обратитесь к снимку экрана:

Здесь класс "Учитель и ученик" содержит свойство name. Однако у вас может быть другое имя свойства. Также я фильтрую только по одному столбцу или свойству, вы можете выполнить поиск по нескольким столбцам/свойствам, для этого перейдите по ссылке выше.

введите здесь описание изображения

person Anoop Vaidya    schedule 28.03.2014
comment
Странно, я пробовал это, но не смог заставить это работать - ничего не произошло. В итоге я использовал NSTextDelegate для улавливания изменений в поле поиска и вручную устанавливал filterPredicate на контроллере массива из этого. Однако я отмечу ваш ответ как правильный, так как предполагаю, что просто сделал что-то не так. - person jsd; 28.03.2014
comment
В основном во вторник я буду загружать этот же работающий код, чтобы вычислить вас в случае любой глупой ошибки. Так как в настоящее время в отпуске и без Mac со мной. - person Anoop Vaidya; 28.03.2014