如果"帮助"关闭主应用程序申请已结束

时间:2013-05-28 15:22:47

标签: objective-c macos

我有一个包装器应用程序,它打开另一个应用程序,让我们称之为帮助应用程序。此应用程序位于包装器应用程序资源文件夹中。

我想在帮助应用程序关闭后关闭主应用程序。我怎样才能做到这一点?

我还想知道,在帮助程序打开后,如何退出包装器应用程序。

2 个答案:

答案 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操作,但就是这样)。