你如何获得类似Spotlight或iTunes的搜索功能?

时间:2009-05-02 19:48:14

标签: objective-c cocoa macos search spotlight

我有一个NSTableView,其中包含一些填充了数据的列。如何设置可以根据特定列的内容过滤行的搜索栏?我正在寻找在Finder中使用Spotlight或在iTunes中可以按元数据过滤歌曲的搜索栏中完成的事情类型。

2 个答案:

答案 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