2009-05-02 1 views
1

У меня есть NSTableView, который содержит несколько столбцов, заполненных данными. Как настроить панель поиска, которая может фильтровать строки на основе содержимого определенного столбца? Я ищу тип вещей, который делается с помощью Spotlight в Finder или в строке поиска в iTunes, которая может фильтровать песни по метаданным.Как вы получаете возможность поиска, похожую на Spotlight или iTunes?

ответ

2

Может ли ваш источник данных управляться NSArrayController?

Подложки 2 standard. Первый (pre-Tiger) метод заключается в подклассе NSArrayController, переопределяя arrObjects. Второй (пост-тигр) должен связывать предикаты NSSearchField с фильтром фильтра NSArrayController. В любом случае привяжите свойства вида к ключу контроллера arrangedObject (например, привяжите «имя» NSTableColumn к ключу контроллера arrangedObjects.name и привяжите содержимое NSTableView к arrangedObjects). Возможно, вы захотите ознакомиться с writing predicates.

+0

Имейте в виду, что вам не нужно использовать привязки для использования NSPredicate, он работает точно также и на обычном объекте NSArray, если вы используете методы источника данных для заполнения табличного представления. –

3

Возможности «Spotlight» действительно предоставляются вам с помощью API SearchKit, хотя для простого случая, как то, что вы описываете NSPredicate, вероятно, будет лучшим выбором. Если кому-то интересно, я написал презентацию SearchKit для CocoaHeads, вы можете take a look at here.

Смежные вопросы