2013-05-28 134 views
0

我有一个打包应用程序,打开其他应用程序,我们称之为助手应用程序。此应用程序位于包装应用程序资源文件夹内。如果“助手”应用程序关闭,关闭主应用程序

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

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

+3

你开发OSX或iOS? –

+0

对不起,我忘了提及,我为OSX开发。 – Silex

回答

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 
    } 
} 
+0

谢谢你的详细解答! – Silex

0

简短的回答 - 你不能!

每个应用程序都以沙盒模式工作。你可以调用其他应用程序,但你失去了对你的控制(当然你可以使用AppDelegate标准方法来处理进入/返回前景/免费动作,但就是这样)。

+0

感谢您的回答。然后我去接受我标记为接受的帖子,它在启动助手应用程序后退出包装器应用程序。 – Silex

+0

正确....你没有为OSX开发的维度我认为你想到了iOS。 – Kuba