Используя NSPredicateEditor, есть ли способ получить все категории поиска Finder бесплатно?
Я добавляю NSPredicateEditor в свое приложение, чтобы позволить пользователю искать конкретные файлы и категории файлов.
Шаблон NSPredicateEditor по умолчанию из Inteface Builder добавляет элемент управления, содержащий только категории "имя", "адрес" и "знак". Я ищу более конкретные категории.
Я знаю, что я могу добавить пункты меню в эти меню в Интерфейсном Разработчике, но я бы предпочел не вести список всех различных категорий и значений для поиска файлов.
В Finder к поиску можно добавлять самые разные категории и значения.
При сохранении этого поиска, а затем с помощью "Get Info" в сохраненной папке поиска, вы обнаруживаете предикат, использованный для создания NSPredicateEditor в Finder:
((** = "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))
При щелчке по типу категории "Другое" открывается меню с широким спектром более специфических категорий.
Мой вопрос заключается в том, можно ли добавить этот бесплатный и настраиваемый NSPredicateEditor из Finder "бесплатно" в мое приложение? Или мне нужно будет объявить, а затем вести список всех типов поиска, которые поддерживает мое приложение?
2 ответа
Немного поздно, но вы должны взглянуть на MDSchema.h. MDSchemaCopyAllAttributes будет возвращать всю поддерживаемую схему Spotlight, MDSchemaCopyDisplayNameForAttribute будет возвращать отображаемое имя для списка, а MDSchemaCopyDisplayDescriptionForAttribute будет возвращать типы значений для каждого элемента в схеме. Из этого вы можете создать свой собственный NSRuleEditor. NSPredicateEditor будет сложнее, так как вы получаете много встроенного поведения, которое затем нужно переопределить, но, вероятно, все еще возможно.
Мой вопрос заключается в том, можно ли добавить этот бесплатный и настраиваемый NSPredicateEditor из Finder "бесплатно" в мое приложение?
Не это NSRuleEditor
является частью приложения Finder.
Да, с несколькими дополнительными. Аналогичный редактор находится на панели "Открыть / Сохранить файл".