Используя NSPredicateEditor, есть ли способ получить все категории поиска Finder бесплатно?

Я добавляю NSPredicateEditor в свое приложение, чтобы позволить пользователю искать конкретные файлы и категории файлов.

Шаблон NSPredicateEditor по умолчанию из Inteface Builder добавляет элемент управления, содержащий только категории "имя", "адрес" и "знак". Я ищу более конкретные категории.

построитель интерфейса по умолчанию NSPredicateEditor

Я знаю, что я могу добавить пункты меню в эти меню в Интерфейсном Разработчике, но я бы предпочел не вести список всех различных категорий и значений для поиска файлов.

В Finder к поиску можно добавлять самые разные категории и значения.

категории по умолчанию для поиска 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))

При щелчке по типу категории "Другое" открывается меню с широким спектром более специфических категорий.

Другие категории для поиска Finder

Мой вопрос заключается в том, можно ли добавить этот бесплатный и настраиваемый NSPredicateEditor из Finder "бесплатно" в мое приложение? Или мне нужно будет объявить, а затем вести список всех типов поиска, которые поддерживает мое приложение?

2 ответа

Немного поздно, но вы должны взглянуть на MDSchema.h. MDSchemaCopyAllAttributes будет возвращать всю поддерживаемую схему Spotlight, MDSchemaCopyDisplayNameForAttribute будет возвращать отображаемое имя для списка, а MDSchemaCopyDisplayDescriptionForAttribute будет возвращать типы значений для каждого элемента в схеме. Из этого вы можете создать свой собственный NSRuleEditor. NSPredicateEditor будет сложнее, так как вы получаете много встроенного поведения, которое затем нужно переопределить, но, вероятно, все еще возможно.

Мой вопрос заключается в том, можно ли добавить этот бесплатный и настраиваемый NSPredicateEditor из Finder "бесплатно" в мое приложение?

Не это NSRuleEditor является частью приложения Finder.

Да, с несколькими дополнительными. Аналогичный редактор находится на панели "Открыть / Сохранить файл".

Другие вопросы по тегам