다른 앱을 실행하는이 앱에서 작업 중입니다. 내가 사용하는 응용 프로그램 출시를 듣고있어 :
앱이 내 앱에서 시작되었는지 여부를 확인할 수 있도록 맞춤 매개 변수로 앱에서 앱을 시작하는 방법은 무엇인가요?
[[[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];
나는 몇 가지 조사를했고, 나는 당신이 보낼 수있는 것을보고 (위의 코드에서 var dict
을 사용하는 이유는 무엇입니까?)하지만이 문제가 있습니다. NSWorkspaceLaunchWithoutActivation
을 사용하더라도 Mail.app가 시작되고 새로운 작성 창에 초점이 맞춰집니다. 왜 그렇게하는지 모르겠습니다.
또 다른 한가지는 앱을 집중하지 않고 사용자 지정 인수를 보내면 앱이 저에 의해 시작되었는지 확인할 수 있습니다 (인수가 있는지 확인).
추신 : 나는 App Store-ready 메소드를 찾고 있습니다.
당신은 다른 응용 프로그램의 실행 인수를 확인할 수없는 경우 다음
는 그렇게 할 수있는 샘플 코드 sniffet입니다. 논쟁은 모든 Cocoa 앱 템플릿의 main.m에서 볼 수있는 것입니다. 그것은 표준 POSIX argc 및 argv main()에 대한 것입니다 – uchuugaka프로세스 ID를 발급 후에 다시 가져 와서 나중에 쿼리 할 수 있습니까? –
NSWorkspaceLaunchConfigurationArguments는 샌드 박스 응용 프로그램에서 사용할 수 없습니다. https://developer.apple.com/reference/appkit/nsworkspacelaunchconfiguption –