Как я могу перетащить файл (или выбрать его открытие в Finder) типа, указанного в Info.plist, на значок в доке, а затем вызвать метод с полным путем к файлу?
Перетаскивание файлов на значок док-станции в Какао
Ответы (5)
Если вы настроили свой Info.plist в массив CFBundleDocumentTypes (либо 'LSItemContentTypes' или 'CFBundleTypeExtensions'), тогда вам просто нужно настроить делегат NSApplication и реализовать метод делегата, application: openFile:.
Если вы ожидаете одновременного удаления нескольких файлов, реализуйте application: openFiles:.
Для обещанных файлов (_1 _ / _ 2_) см. Удаление обещанных файлов на значок приложения в Dock.
Applications
. Это сработало, когда я скопировал свой пакет приложения в папку Applications
. И я не уверен, что будет, если я удалю пакет приложения из папки Applications
.
- person eonil; 19.07.2020
Вот обновленное решение для Xcode 5. В AppDelegate.m
-(BOOL)application:(NSApplication *)sender openFile:(NSString *)filename
{
NSLog(@"%@", filename);
return YES;
}
И в настройках Xcode Document Types в Project> Targets> Info:
Проверьте настройки в Info.plist, если у вас есть пустой массив 'Document Content Type UTIs', который необходимо правильно заполнить или удалить.
Ваш Info.plist должен выглядеть примерно так:
*
. Если вы поддерживаете только определенные расширения файлов, укажите их вместо них. В противном случае ОС предложит открыть случайные файлы с вашим приложением только для того, чтобы ваше приложение тогда не удалось.
- person uliwitness; 25.05.2017
В текущих системах вы можете использовать UTI вместо четырехсимвольных типов старого стиля (например, fold
выше). В редакторе типов документов Xcode создайте новый тип с помощью:
- Имя: Папка
- Идентификатор: public.folder
public.folder
- это подтип public.directory
. public.folder
соответствует каталогам, которые отображаются как таковые для пользователя, то есть не пакетам, подобным .app
оболочкам.
Выберите свое приложение в целевой группе на боковой панели и воспользуйтесь функцией получения информации. Затем в новом окне выберите вкладку свойств, чтобы добавить новый тип документа. Для удобства назовите ее «Папка», а типы ОС должны быть «свернутыми»; тип и роль магазина, которые вы можете оставить как есть.
Если вы на самом деле создаете приложение на основе документов, настройка его так, чтобы указать путь, заставит вас выполнять гораздо больше работы, чем нужно. Просто используйте шаблон приложения на основе документа. Контроллер документа создаст для вас экземпляр нужного класса; вам нужно только написать этот класс.
Приложение, которое вы создаете таким образом, будет обрабатывать отбрасывание файлов (открывая их как документы) бесплатно.