Сбрасывание файлов на значок док-станции в какао - PullRequest
14 голосов
/ 22 марта 2010

Как я могу перетащить файл (или выбрать, чтобы открыть его в Finder) типа, указанного в Info.plist, на иконку моего дока, а затем вызвать метод с полным путем к файлу?

Ответы [ 5 ]

17 голосов
/ 22 марта 2010

Если вы правильно настроили массив CFBundleDocumentTypes вашего Info.plist (либо «LSItemContentTypes», либо «CFBundleTypeExtensions»), вам просто нужно настроить делегат NSApplication и реализовать метод делегата, приложение: openFile: .

Если вы ожидаете одновременного удаления нескольких файлов, внедрите приложение: openFiles: .

Для обещанных файлов(NSFilesPromisePboardType / kPasteboardTypeFileURLPromise) см. Перетаскивание обещанных файлов на значок приложения в Dock .

9 голосов
/ 22 января 2014

Вот обновленное решение для Xcode 5. В AppDelegate.m

-(BOOL)application:(NSApplication *)sender openFile:(NSString *)filename
{
    NSLog(@"%@", filename);
    return YES;
}

А в настройках Xcode Типы документов в Project> Targets> Info: image Info > Document Types">

Проверьте настройки в Info.plist на случай, если у вас есть пустой массив 'UTIs типа содержимого документа', который должен быть заполнен правильно или удален Delete empty Document Content Type UTIs array from Info.plist

Ваш Info.plist должен выглядеть примерно так: Document Types Info.plist

7 голосов
/ 28 февраля 2013

В современных системах вы можете использовать UTI вместо типов с четырьмя символами старого стиля (например, fold выше). В редакторе типов документов Xcode создайте новый тип с помощью:

  • Имя: папка
  • Идентификатор: public.folder

public.folder является подтипом public.directory. public.folder соответствует каталогам, которые отображаются как таковые для пользователя, то есть не такие пакеты, как .app wrappers.

1 голос
/ 02 мая 2010

Выберите ваше приложение в целевой группе боковой панели и используйте команду get info. Затем в новом окне выберите вкладку свойств, чтобы добавить новый тип документа. Назовите его «Папка» для удобства, и типы ОС должны быть «сложены»; тип магазина и роль, которую вы можете оставить как есть.

0 голосов
/ 22 марта 2010

Если вы на самом деле создаете приложение на основе документов, его настройка для указания пути позволит вам выполнять гораздо больше работы, чем нужно. Просто используйте шаблон приложения на основе документа. Контроллер документов создаст для вас экземпляр нужного класса; вам нужно только написать этот класс.

Приложение, которое вы создадите таким образом, будет обрабатывать файлы (открывая их как документы) бесплатно.

...