他のアプリを起動するこのアプリに取り組んでいます。私は以下を使用してアプリの起動を聞いています:
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
selector:@selector(appLaunched:) name:NSWorkspaceDidLaunchApplicationNotification
object:nil];
そして、私はそれらを使用して起動します (メールは単なる例です):
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[NSArray arrayWithObject:@"lalalala"], NSWorkspaceLaunchConfigurationArguments, nil];
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:[NSURL URLWithString:@"/Applications/Mail.app"] options:NSWorkspaceLaunchWithoutActivation configuration:dict error:nil];
いくつかの調査を行ったところ、アプリを起動するときに引数を送信できることがわかりました (そのため、dict
上記のコードで var を使用しました)。ただし、これには問題があります: を使用してもNSWorkspaceLaunchWithoutActivation
、Mail.app は起動し、新しい作成ウィンドウでフォーカスされます。なぜそんなことをしているのかわからない。
別のことですが、アプリにフォーカスせずにカスタム引数を正常に送信できた場合、アプリが自分によって起動されたかどうかを確認するにはどうすればよいですか (引数が存在するかどうかを確認してください)。
PS: App Store 対応のメソッドを探しています。