Типы документов Xcode 4 и экспортируемые ИМП - PullRequest
1 голос
/ 23 марта 2011

У меня есть другая проблема с Xcode 4. Мне действительно нравится новая IDE, но есть некоторые вещи, которые я еще не начал работать. Одно дело - зарегистрировать типы документов в Xcode 4. Я попробовал это старым способом через файл plist, но это не сработало. (Означает, что я не могу открыть файл с моим приложением) Но сейчас я не знаю, как настроить его с помощью интерфейса Xcode 4.

Моя последняя попытка выглядит следующим образом: (скопировал запись, сделанную из Xcode в info.plist)

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.plain-text</string>
        </array>
        <key>UTTypeDescription</key>
        <string>Configuration File</string>
        <key>UTTypeIdentifier</key>
        <string>com.myname.projec.iws</string>
    </dict>
</array>

и:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array>
            <string>AnIcon-320</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>Config File</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.myname.projec.iws</string>
        </array>
    </dict>
</array>

Это не работает. Файл в Почте не имеет возможности открыть с моим приложением.

У кого-нибудь есть рабочий пример с Xcode 4 или учебник, как это сделать. У меня нет дальнейшей идеи, как заставить это работать.

Сандро

Ответы [ 3 ]

4 голосов
/ 23 марта 2011

Я думаю, что роль и расширение файла отсутствуют.

Если вы хотите указать расширение файла, вам нужно добавить UTTypeTagSpecification :

    <key>UTExportedTypeDeclarations</key>

<array>

    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.text</string>
        </array>
        <key>UTTypeDescription</key>
        <string>my document type</string>
        <key>UTTypeIdentifier</key>
        <string>com.mycompany.myfiletypename</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>iws</string>
            </array>
        </dict>
    </dict>

Для роли необходимо добавить CFBundleTypeRole :

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeName</key>
        <string>My file</string>
        <key>CFBundleTypeIconFiles</key>
        <array>
            <string>document-320.png</string>
            <string>document-64.png</string>
        </array>
        <key>LSHandlerRank</key>
        <string>Alternate</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.mycompany.myfiletypename</string>

        </array>
    </dict>
</array>
1 голос
/ 13 мая 2011

Я только что посмотрел мой старый файл .plist, вырезал и вставил ключи и значения в новый проект Xcode 4, который был импортирован из версии Xcode3. По-видимому, он «теряет» некоторую информацию в .plist для UTI, когда появляется. Однако, когда я вставил недостающие ключи / значения обратно из .plist, созданного с помощью Xcode3, новые значения сработали, и они появились в графическом интерфейсе, так что теперь вы можете "просматривать" графический интерфейс и смотреть, что и куда. Вид обратного проектирования GUI, но он работает.

1 голос
/ 07 апреля 2011

Вы можете редактировать эквивалент вашего com.mycompany.myfiletypename, установив «Типы документов» => «Элемент 0» => «Типы ОС документа» => «Элемент 0».

значение по умолчанию "????"который вы можете изменить на "com.mycompany.myfiletypename".

Я думаю, что другие свойства говорят сами за себя.

...