какао открыть несколько файлов с соответствующим приложением - PullRequest
1 голос
/ 25 июля 2010

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

a) Каким-то образом проинструктировать OSX открыть все эти файлы со связанным приложением, но он должен вызвать метод делегата openFiles NSApplication целевого приложения b) Указать приложение для открытияэти файлы с (и также вызывают openFiles)

По сути, не имеет значения, какое решение реализовать, потому что эти файлы все равно будут связаны с целевым приложением.Как бы я сделал одну из этих вещей?

Ответы [ 2 ]

4 голосов
/ 25 июля 2010

Чтобы открыть сразу целую кучу файлов, отправьте общий объект NSWorkspace openURLs:withAppBundleIdentifier:options:additionalEventParamDescriptor:launchIdentifiers:, сообщение или вызовите функцию LSOpenURLsWithRole или LSOpenFromURLSpec функция .В любом случае вы передадите открываемый массив URL-адресов.

Каждый из них позволит вам указать конкретное приложение для использования.NSWorkspace позволяет указать его по идентификатору пакета, а две функции Launch Services позволяют указать URL или FSRef для конкретного пакета приложения.

… он должен вызывать метод делегата openFiles целевого приложения NSApplication

Это невозможно потребовать, поскольку (а) приложение может быть основано на документе, и в этом случае оно, вероятно, не имеет делегата NSApplication и, даже если оно имеет, такой делегатвероятно, не будет отвечать на application:openFiles:, и (b) приложение не может быть на основе какао, и в этом случае оно будет обрабатывать событие Apple Open Documents напрямую.Ничего из этого не касается вашего приложения, так что не беспокойтесь об этом.

0 голосов
/ 16 апреля 2019

Сначала добавьте свои видеофайлы в папку ресурсов. Код выглядит следующим образом:

NSString* bundlePath = [[NSBundle mainBundle] bundlePath];
NSString* videoPath = [bundlePath stringByAppendingPathComponent:@"/Contents/Resources/video.mov"];

[[NSWorkspace sharedWorkspace] openFile:videoPath];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...