【问题标题】:How can I use AppleScriptObjC to close my Xcode application?如何使用 AppleScriptObjC 关闭我的 Xcode 应用程序?
【发布时间】:2013-02-25 10:58:20
【问题描述】:

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

【问题讨论】:

  • 您有什么理由推出自己的更新解决方案而不是使用Sparkle
  • @duskwuff 不是真的,但我确实喜欢我拥有的那个。无论如何,你知道如何关闭它吗?

标签: xcode macos applescript applescript-objc


【解决方案1】:

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

+(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];
}

【讨论】:

    【解决方案2】:

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

    delay 2
    tell application "Name of Application" to activate
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多