他のアプリを起動するこのアプリで作業しています。私が使用したアプリが起動に聞いている:
カスタムパラメータを使ってアプリからアプリを起動するには、アプリが私によって起動されたかどうか確認できますか?
[[[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が起動し、新しい作文ウィンドウに集中します。なぜそれがそれをやっているのかわかりません。
もう1つのことは、アプリケーションに焦点を当てずにカスタム引数を正常に送信できた場合、アプリが私によって起動されたかどうかを確認できます(引数があるかどうかを確認します)。
PS:App Store対応のメソッドを探しています。
そのアプリはちょうどコマンドラインのようにそれを行うためのAPIを提供しない限り、あなたは他のアプリの起動引数を確認することができません。引数は、すべてのCocoaアプリテンプレートのmain.mに表示されるものです。それは私が標準POSIXのargcとargv main()のためだよ – uchuugaka
起動後にプロセスIDを取得して、それを後で照会することはできますか? –
NSWorkspaceLaunchConfigurationArgumentsは、サンドボックスアプリケーションでは使用できません:https://developer.apple.com/reference/appkit/nsworkspacelaunchconfiguresarguments –