2010-10-23 2 views
1

В приложении Cocoa на основе документов поддерживаемые расширения файлов перечислены в файле Info.plist приложения.Разрешить связки/плагины для добавления поддерживаемых расширений документа приложения Cocoa?

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

В качестве примера, если установлен HTML.bundle, мое приложение должно разрешить открывать HTML-документы, но если пакет отсутствует, то он не должен.

Должна ли быть установка уровня приложения или может быть распространена через установленные пакеты для приложения?

Я имею в виду «Типы документов» в Info.plist приложения на основе документов.

ответ

1

Вы должны переписать файл Info.plist из приложения:

if (bundle_installed(@"HTML.bundle")) { 
    NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:PATH_TO_PLIST]; 

    /* add/remove things to/from dict here */ 

    [dict writeToFile:PATH_TO_PLIST atomically:YES]; // atomically is important! Must be YES!! 
} 

Это очень легко реализовать, но тем не менее, ваше приложение должно быть перезапущен в порядок сделать выполнить изменения.


Вы должны добавить резервную info.plist в Resources каталог в случае что-то пойдет не так.

+0

Спасибо :) Я могу справиться с перезапуском приложения. Я собираюсь начать с этого. Пойдем, как я пойду. – d11wtq

+0

Вам нужно будет работать как администратор, чтобы он тоже работал (на большинстве компьютеров), что делало его довольно нехорошим –

Смежные вопросы