Как вы получаете возможности поиска, аналогичные Spotlight или iTunes? - PullRequest
1 голос
/ 02 мая 2009

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

Ответы [ 2 ]

3 голосов
/ 03 мая 2009

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

2 голосов
/ 03 мая 2009

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

Существует 2 стандартных подхода. Первый (до Тигра) метод заключается в создании подкласса NSArrayController, переопределяющемrangeObjects. Второе (после Tiger) - это привязка предикатов NSSearchField к filterPredicate фильтра NSArrayController. В любом случае, привяжите ваши свойства представления к клавише arrangedObject контроллера (например, привяжите «name» NSTableColumn к клавише arrangedObjects.name контроллера и привяжите содержимое NSTableView к arrangedObjects). Возможно, вы захотите прочитать написание предикатов .

...