我正在向我的应用程序添加一个 NSPredicateEditor 以允许用户搜索特定文件和文件类别。
来自 Inteface Builder 的默认 NSPredicateEditor 模板添加了一个仅包含“名称”、“地址”和“标志”类别的控件。我正在寻找更具体的类别。
我知道我可以在 Interface Builder 中将菜单项添加到这些菜单中,但我非常不希望自己维护所有用于文件搜索的各种类别和值的列表。
在 Finder 中,可以将多种类别和值添加到搜索中。
使用保存此搜索然后在保存的 seach 文件夹上使用“获取信息”显示用于生成 Finder 的 NSPredicateEditor 的谓词:
((** = "this*"cdw) &&
(kMDItemContentTypeTree = "public.png"cd) &&
InRange(kMDItemLastUsedDate,$time.today(-2d),$time.today(+1d)) &&
InRange(kMDItemContentModificationDate,$time.today(-4d),$time.today(+1d)) &&
InRange(kMDItemContentCreationDate,$time.today(-8d),$time.today(+1d)) &&
(kMDItemDisplayName = "*screenshot*"cd) && (kMDItemTextContent = "content*"cdw))
单击“其他”类别类型会弹出一个菜单,其中包含各种更具体的类别。
我的问题是,是否将来自 Finder 的同样复杂且自定义的 NSPredicateEditor “免费”添加到我的应用程序中?还是我需要声明并维护我的应用支持的所有搜索类型的列表?