如何使用AppleScriptObjC关闭我的Xcode应用程序?

时间:2013-03-10 03:51:08

标签: xcode macos applescript applescript-objc

我有一个AppleScriptObjC Xcode应用程序。在这个应用程序中,我构建了一个更新程序,它在启动时检查更新并提示用户下载它们。一切都很美妙 - 除了一件事。我需要应用程序在更新时重新启动,因此更改可以生效。我已经在互联网上搜索了高低,但我无法弄明白。我不能“告诉应用程序”MyApp \“退出”,因为Xcode不允许这样做。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这是重新启动的Objective-C方法。也许你可以使用这个想法。

+(void)restart:(id)sender
{
    NSString *restartScript = @"while ps -p $1 > /dev/null; do sleep 0.1; done; open \"$2\"";
    NSArray *arguments = [NSArray arrayWithObjects:
                          @"-c", restartScript,
                          @"",
                          [NSString stringWithFormat:@"%d",[[NSProcessInfo processInfo] processIdentifier]],
                          [[NSBundle mainBundle] bundlePath],
                          nil];
    [NSTask launchedTaskWithLaunchPath:@"/bin/sh" arguments:arguments];
    [NSApp terminate:self];
}

答案 1 :(得分:0)

如果您只是想退出应用程序,使用命令quit似乎工作正常。如果你想让它重新启动(不使用Objective-C),你可以尝试在退出之前启动一个单独的脚本,这样做:

delay 2
tell application "Name of Application" to activate

我希望这个想法有所帮助。