Задача C launchApplicationAtUrl аргументы не работают - PullRequest
1 голос
/ 25 апреля 2019

Я хотел бы открыть приложение Photoshop с некоторыми аргументами через launchApplicationAtURL.Фотошоп открыт, но изображение, которое я указал в списке параметров, не открывается.

NSWorkspace *workspace = [NSWorkspace sharedWorkspace];
NSString *urlString = [NSString stringWithUTF8String:imageEditorPath.GetPlatformString().c_str()];
NSURL *url = [[NSURL alloc] initFileURLWithPath:urlString];
//Handle url==nil
NSError *error = nil;
NSArray *arguments = [NSArray     arrayWithObjects:@"/Users/admin/q/177381.png", nil];
[workspace launchApplicationAtURL:url options:0 configuration: [NSDictionary dictionaryWithObject:arguments forKey:NSWorkspaceLaunchConfigurationArguments] error:&error];

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Ссылаясь на мои комментарии выше, можно открыть несколько файлов в приложении, используя метод NSWorkspace openURLs:withApplicationAtURL:options:configuration:error:.Если вам не нужно отправлять какие-либо аргументы приложению или устанавливать переменные среды для приложения, тогда можно просто передать NULL параметру configuration:.Аналогично, существует множество NSWorkspaceLaunchOptions доступных , но если ничего из этого не требуется, можно передать 0 параметру options::

NSURL *appURL = [NSURL fileURLWithPath:@"file:///path/to/application.app"];
NSArray *fileURLs = [NSArray arrayWithObjects:[NSURL fileURLWithPath:@"file:///path/to/file1"],
                                              [NSURL fileURLWithPath:@"file:///path/to/file2"],
                                              nil];
NSError *err = nil;
BOOL success = [[NSWorkspace sharedWorkspace] openURLs:fileURLs withApplicationAtURL:appURL 
                                              options:0 configuration:NULL error:&err];
0 голосов
/ 26 апреля 2019

CJKs ответ правильный: [[NSWorkspace sharedWorkspace] openURLs: fileURLs withApplicationAtURL: опции appURL: 0 конфигурация: 0 ошибка: & err]; где fileURLs - это ваш массив файлов, которые нужно открыть, а appURL указывает на приложение. - CJK

CJK - Пожалуйста, пришлите его как ответ.

...