外部アプリを起動するときにパラメータを渡すのは、どうすれば良いのかとググってみると、Launching an Mac App with Objective-C/Cocoa – Stack Overflowのページを発見。
launchApplicationAtURL:options:configuration:error:
を使うのが良さそうです。NSWorkspace Class Reference
NSError *error = nil; NSArray *arguments = [NSArray arrayWithObjects:@"引数1", @"引数2", nil]; [[NSWorkspace sharedWorkspace] launchApplicationAtURL:外部アプリのパス options:NSWorkspaceLaunchDefault configuration:[NSDictionary dictionaryWithObject:arguments forKey:NSWorkspaceLaunchConfigurationArguments] error:&error]; // if (error != nil) { NSLog(@"%@",[error localizedDescription]); }
受け取る側のアプリでは、
[[NSProcessInfo processInfo] arguments]
を使えば良さそうなので、例えば
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
内に
NSArray* arguments = [[NSProcessInfo processInfo] arguments]; int i; for (i = 0; i < [arguments count]; i++) { NSLog(@"%d=%@\n",i,[arguments objectAtIndex:i]); }
で、受け取ることができました。
なお、i=0にはアプリまでのパスが入っていました。i=1からが渡されたパラメータとなるようです。
コメント