1

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

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

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

4

2 回答 2

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
    }
}
于 2013-05-28T16:30:41.163 回答
0

简短的回答 - 你不能!

每个应用程序都在沙盒模式下工作。您可以调用其他应用程序,但您无法控制您的应用程序(当然您可以使用 AppDelegate 标准方法来处理进入/返回前台/后台操作,仅此而已)。

于 2013-05-28T15:33:44.860 回答