Как добавить тег Finder в macOS программно с помощью Swift, не помечая файл?

Я создаю приложение macOS, которое программно устанавливает теги Finder для файлов, используя расширенные атрибуты, аналогичные этому ответу для Swift 3: Установить цвет метки Finder. Это хорошо работает.

Однако я хотел бы создать тег и сделать его доступным в файловой системе, не добавляя тег к определенному файлу. Например, когда пользователь нажимает кнопку, я хочу создать тег, похожий на Finder - Настройки - Теги, где вы можете создать новый тег, нажав кнопку +. Вам не нужно указывать файл или папку.

Я попытался добавить новый тег в _kMDItemUserTags фиктивной папки с помощью API setResourceValue. Это создает тег, как и ожидалось. Однако в поиске этого тега теперь отображается фиктивная папка, что не очень приятно. Как только я снова удаляю тег из фиктивной папки (и никакой другой файл или папка не имеет этого тега), тег исчезает из списка доступных тегов.

Итак, мне интересно, как можно создать новый тег в Swift и сохранить его, не назначая его в файл?

1 ответ

Недавно я провел небольшое исследование по этому вопросу, когда меня попросили добавить поддержку тегов в мое средство просмотра/органайзера изображений «SDview», и кажется, что эти теги не имеют никакого хранилища, где вы могли бы добавить/сохранить их «для последующего использования». ". Список доступных тегов представляет собой динамическую конструкцию, созданную на основе уже использованных тегов метаданных Spotlight. IOW, если вы хотите, чтобы ваш тег отображался в списке доступных тегов, вам нужно присвоить его чему-то.

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