Мое приложение использует следующую функцию NSApplicationDelegate
.
- (void)application:(NSApplication*)sender openFiles:(NSArray*)filenames;
Я хочу использовать эту функцию, чтобы позволить пользователю перетаскивать файлов изображений на значок приложения вдок.
Как мне определить определенные типы файлов в моем файле plist
, чтобы ограничить их изображениями?Я обнаружил, что структура должна выглядеть примерно так.
// plist file contents taken from Preview.app
[...]
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFile</key>
<string>jpeg.icns</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSIsAppleDefaultForType</key>
<true/>
<key>LSItemContentTypes</key>
<array>
<string>public.jpeg</string>
</array>
<key>NSDocumentClass</key>
<string>PVDocument</string>
</dict>
</array>
Я добавил ее в файл plist
, но она не работает.Во всплывающем окне отображается следующее сообщение об ошибке.
Не удалось открыть документ «test.jpg».MyApp не может открывать файлы в формате «JPEG-изображения».
Далее, я прочитал в документации , что есть public.image
, который я бы хотел определить.
Тем временем я обнаружил, что файл plist
содержит ключ CFBundleDocumentTypes
, только если я создаю приложение какао с опцией «Создать приложение на основе документа».Не могли бы вы уточнить, какие зависимости существуют для опции?