Объявление новых универсальных идентификаторов типов
Приложения Mac могут добавить новые универсальные идентификаторы типов для собственных форматов данных. Вы объявляете новый UTIs в информационном списке свойств (info.plist
) файл пакета. Можно объявить новый UTIs в любом следующем:
Комплекты приложений
Пакеты Средства импорта центра внимания
Пакеты действия Automator
Объявление UTIs
В дополнение к объявлению строки UTI объявление может содержать любое из следующих свойств:
Спецификация тега типа, указывая все альтернативные теги идентификатора, соответствующие этот тип
Список UTIs, которому соответствует этот идентификатор
Значок для использования при отображении элементов этого типа
Читаемая пользователем строка, описывающая этот идентификатор, который может локализовать содержание пакета
Ваши объявления UTI должны быть или импортированы или экспортированы:
Экспортируемое объявление UTI означает, что тип доступен для использования всеми другими сторонами. Например, приложение, использующее собственный формат документа, должно объявить его как экспортируемый UTI.
Импортированное объявление UTI используется для объявления типа, которым пакет не владеет, но хотел бы видеть доступный в системе. Например, скажите, что программа редактирования видео создает файлы с помощью собственного формата, UTI которого объявляется в его комплекте приложений. Если Вы пишете приложение или плагин, который может считать такие файлы, необходимо удостовериться, что система знает о собственном UTI, даже если фактическое приложение редактирования видео не доступно. Для этого Ваше приложение должно повторно объявить UTI в своем собственном пакете, но отметить его как импортированное объявление.
Если и импортированные и экспортируемые объявления для UTI существуют, экспортируемое объявление имеет приоритет по импортированному.
Вот демонстрационное объявление для public.jpeg
UTI, определенный как экспортируемый тип, поскольку Вы нашли бы в списке свойств:
<key>UTExportedTypeDeclarations</key> |
<array> |
<dict> |
<key>UTTypeIdentifier</key> |
<string>public.jpeg</string> |
<key>UTTypeReferenceURL</key> |
<string>http://www.w3.org/Graphics/JPEG/</string> |
<key>UTTypeDescription</key> |
<string>JPEG image</string> |
<key>UTTypeIconFile</key> |
<string>public.jpeg.icns</string> |
<key>UTTypeConformsTo</key> |
<array> |
<string>public.image</string> |
<string>public.data</string> |
</array> |
<key>UTTypeTagSpecification</key> |
<dict> |
<key>com.apple.ostype</key> |
<string>JPEG</string> |
<key>public.filename-extension</key> |
<array> |
<string>jpeg</string> |
<string>jpg</string> |
</array> |
<key>public.mime-type</key> |
<string>image/jpeg</string> |
</dict> |
</dict> |
</array> |
Таблица 3-1 показывает список доступных ключевых списков свойства, что Вы используете в объявлениях UTI.
Ключ | Тип значения | Описание |
---|---|---|
| массив словарей | Массив экспортируемых объявлений UTI (т.е. идентификаторы, принадлежавшие издателю пакета). |
| массив словарей | Массив импортированных объявлений UTI (т.е. идентификаторы, принадлежавшие другой компании или организации). |
| строка | UTI для заявленного типа. Этот ключ требуется для объявлений UTI. |
| словарь | Словарь, определяющий одни или более эквивалентных идентификаторов типов. |
| массив строк | UTIs, которому соответствует этот идентификатор. |
| строка | Имя ресурса значка пакета для соединения с этим UTI. |
| строка | Видимое пользователем описание этого типа (может быть локализован). |
| строка | URL справочного документа, описывающего этот тип. |
Рекомендации для Объявления новых Универсальных Идентификаторов типов
Если Ваше приложение использует собственные форматы данных, необходимо объявить их в Info.plist
файл Вашего комплекта приложений. Некоторые инструкции:
Ваша строка UTI должна быть уникальной. После начала формата обратного DNS
com.
companyName является простым способом гарантировать уникальность. В то время как система может поддерживать различные строки UTI с той же спецификацией, реверс не является истиной.Если Ваш код полагается на сторонние типы UTI, которые могут не присутствовать в системе, необходимо объявить те UTIs как импортированные типы в пакете.
Обязательно добавьте информацию о соответствии, если Ваш собственный тип является подтипом одного или более существующих типов. В большинстве случаев Вы не должны указывать соответствие к непубличному типу, если Вы также не объявляете что тип в Вашем пакете. Для списка общественности и определенного Apple UTIs, посмотрите Объявленные системой Универсальные Идентификаторы типов.