3

Я искал лучший способ добавить новый тип расширения файла (.xyz) и связать значок со всеми файлами такого рода в SnowLeopard.

1 ответ1

5

Это зависит от того, хотите ли вы, чтобы определенное приложение открывало эти типы файлов или оставляло их неассоциированными.


Если вы хотите, чтобы они открывались в определенном приложении, выберите это приложение в диалоговом окне « Получение информации» одного из этих файлов и установите флажок « Всегда открывать с помощью» в диалоговом окне выбора.

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


Теперь вам нужно отредактировать пакет вашего приложения:

Щелкните правой кнопкой мыши приложение, чтобы обработать эти расширения файлов, и выберите « Показать содержимое пакета». Перейдите к 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 из выше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .