Я искал лучший способ добавить новый тип расширения файла (.xyz) и связать значок со всеми файлами такого рода в SnowLeopard.
1 ответ
Это зависит от того, хотите ли вы, чтобы определенное приложение открывало эти типы файлов или оставляло их неассоциированными.
Если вы хотите, чтобы они открывались в определенном приложении, выберите это приложение в диалоговом окне « Получение информации» одного из этих файлов и установите флажок « Всегда открывать с помощью» в диалоговом окне выбора.
Теперь это расширение файла связано с этим приложением, но, вероятно, имеет общий значок. Значок является обязанностью связанного приложения, поэтому мы должны изменить его.
Теперь вам нужно отредактировать пакет вашего приложения:
Щелкните правой кнопкой мыши приложение, чтобы обработать эти расширения файлов, и выберите « Показать содержимое пакета». Перейдите к Contents
и отредактируйте Info.plist
. Вам может понадобиться редактор списка свойств, который является частью инструментов разработчика Apple. Если вам повезет, это формат XML. Отредактируйте CFBundleDocumentTypes
этого файла и добавьте следующее для расширения .foo
:
<key>CFBundleDocumentTypes</key>
<array>
<!-- keep the other entries! -->
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>foo</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>FooDocument</string>
<key>CFBundleTypeName</key>
<string>Foo Document</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
</array>
Сохраните файл.
Для значка вам необходимо создать файл в AppName.app/Contents/Resources/
именем FooDocument.icns
. Вы можете создавать файлы icns
используя Preview или специализированные утилиты.
Вам нужно будет повторять это каждый раз, когда вы обновляете приложение.
Если вы не хотите, чтобы файлы открывались в определенном приложении, вы можете создать новый "фиктивный" пакет приложений (он даже не должен иметь возможность запуска), в который вы помещаете значок и добавляете информацию CFBundleDocumentTypes
из выше.