2016-10-28 10 views
0

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

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

default interface builder NSPredicateEditor

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

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

default categories for Finder searches

Использование сохранения этого поиска затем с помощью «Get Info» на сэкономленные папке Seach показывает предикат, используемый для генерации искателя 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)) 

Щелчок «Другой» тип категории воспитывает меню с широким разнообразием даже более конкретных категорий.

Other Categories for Finder Search

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

ответ

1

Вопрос в том, добавить ли этот сложный и настраиваемый NSPredicateEditor из Finder «бесплатно» в мое приложение?

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

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

+0

Спасибо. Что вы имеете в виду, когда говорите «Да, с несколькими дополнениями»? – pkamb

+0

Вы не только получаете редактор правил, но также получаете остальную часть панели «Открыть/Сохранить файл». – Willeke

+0

Вы говорите, что есть панель, которая может быть добавлена ​​бесплатно в любое приложение, которое включает в себя предикаты/правила, а также открытие/сохранение? Если да, то какой класс? – pkamb

1

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