Diğer uygulamalar başlatan bu uygulama üzerinde çalışıyorum. Ben kullanmaya devam eden uygulama lansmanları dinliyorum:
Uygulamamın uygulamalarını nasıl başlattığımı kontrol etmek için Uygulamamdan özel bir parametreyle nasıl çıkacağım?
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
selector:@selector(appLaunched:) name:NSWorkspaceDidLaunchApplicationNotification
object:nil];
Ve onların kullanarak başlatmak (Posta sadece bir örnektir):
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[NSArray arrayWithObject:@"lalalala"], NSWorkspaceLaunchConfigurationArguments, nil];
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:[NSURL URLWithString:@"/Applications/Mail.app"] options:NSWorkspaceLaunchWithoutActivation configuration:dict error:nil];
biraz araştırma yaptım ve senin gönderebilmesi gördü Bir uygulamayı başlattığınızda bir argüman (bu yüzden yukarıdaki kodda var dict
kullandım), ancak bu konuda bir sorun yaşıyorum: NSWorkspaceLaunchWithoutActivation
kullanarak bile, Mail.app başlatılır ve yeni bir oluşturma penceresi ile odaklanır. Bunu neden yaptığını bilmiyorum.
Uygulamaya odaklanmadan başarılı bir şekilde özel bir argüman göndermeyi başarabilirsem başka bir şey, uygulamanın bana göre başlatılıp başlatılmadığını nasıl kontrol edebilirim (argüman olup olmadığını kontrol et)?
PS: App Store için hazır yöntemler arıyorum.
başka uygulamanın başlatılması args kontrol edemez: İşte
bunu örnek kod sniffet olduğunu. Tartışma, her bir Kakao uygulama şablonunun main.m bölümünde gördüğünüz şeydir. Standart POSIX argc ve mainv için argv() – uchuugakaBen başlatmadan sonra bir süreç kimliği alabilir ve daha sonra sorgulamak için kullanabilir miyim? –
NSWorkspaceLaunchConfigurationArguments, korumalı uygulamalar için kullanılamıyor: https://developer.apple.com/reference/appkit/nsworkspacelaunchconfigurationarguments –