我有一个包装器应用程序,它打开另一个应用程序,让我们称之为帮助应用程序。此应用程序位于包装器应用程序资源文件夹中。
我想在帮助应用程序关闭后关闭主应用程序。我怎样才能做到这一点?
我还想知道,在帮助程序打开后,如何退出包装器应用程序。
答案 0 :(得分:2)
您是否正在为OSX(10.6及更高版本)开发? 在这种情况下,使用NSRunningApplication来终止包装器应用程序。
@implementation AppDelegate // Helper Application delegate
- (void)applicationWillTerminate:(NSNotification *)aNotification
{
NSArray *apps = [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.yourApplication.Launcher"];
if ([apps count])
[(NSRunningApplication *)[apps objectAtIndex:0] terminate];
}
@end
您可以与NSWorkspace同步启动助手:
- (void)launchHelper // Wrapper launch method
{
NSURL *helperURL = [[NSBundle mainBundle] URLForResource:@"Helper" withExtension:@"app"];
if (helperURL)
{
NSError *err = nil;
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:helprURL options:NSWorkspaceLaunchAllowingClassicStartup configuration:nil error:&err];
// here Helper 'main' have been called
}
}
答案 1 :(得分:0)
简短回答 - 你不能!
每个应用程序都在沙箱模式下工作。您可以调用其他应用程序,但是您失去了对您的控制权(当然您可以使用AppDelegate标准方法来处理进入/返回前景/ bacground操作,但就是这样)。