Question

J'ai un NSTableView qui contient quelques colonnes remplies de données. Comment configurer une barre de recherche capable de filtrer les lignes en fonction du contenu d'une colonne spécifique? Je recherche le type de fonctionnalité de Spotlight dans le Finder ou de la barre de recherche dans iTunes permettant de filtrer les chansons par métadonnées.

Était-ce utile?

La solution

Votre source de données peut-elle être gérée par NSArrayController?

Il existe 2 approches standard . La première technique (pré-Tiger) consiste à sous-classer NSArrayController, en remplaçant l'arrangementObjects. La seconde (post-Tiger) consiste à lier les prédicats de NSSearchField au filterPredicate de NSArrayController. Dans les deux cas, liez les propriétés de votre vue à la clé rangéeObjet du contrôleur (par exemple, associez le nom "NSTableColumn" à la touche rangéObjet.nom du contrôleur et liez le contenu du NSTableView à < code> arrangeObjets ) Vous voudrez peut-être lire la l'écriture de prédicats .

Autres conseils

"Spotlight" L’API SearchKit vous donne cette possibilité, bien que pour un cas simple comme celui que vous décrivez, NSPredicate serait probablement un meilleur choix. Si cela vous intéresse, j’ai écrit une présentation SearchKit pour CocoaHeads, vous pouvez prendre regardez ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top