我有一个NSTableView,其中包含一些填充了数据的列。如何设置可以根据特定列的内容过滤行的搜索栏?我正在寻找在Finder中使用Spotlight或在iTunes中可以按元数据过滤歌曲的搜索栏中完成的事情类型。
答案 0 :(得分:3)
“Spotlight”功能实际上是通过SearchKit API提供给您的,尽管对于像您所描述的简单情况,NSPredicate可能是更好的选择。如果有人感兴趣的话,我为CocoaHeads写了一个SearchKit演示文稿,你可以take a look at here。
答案 1 :(得分:2)
您的数据源可以由NSArrayController管理吗?
有两种standard方法。第一种(pre-Tiger)技术是子类NSArrayController,重写arrangeObjects。第二个(后虎)是将NSSearchField的谓词绑定到NSArrayController的filterPredicate。在任何一种情况下,将视图属性绑定到控制器的arrangedObject
键(例如,将“name”NSTableColumn绑定到控制器的arrangedObjects.name
键,并将NSTableView的内容绑定到arrangedObjects
)。您可能希望阅读writing predicates。