我希望在 Cocoa 应用程序中复制“open”命令的“--fresh”选项的行为。此选项“全新启动应用程序,即不恢复窗口。”
我已经制作了一个启动 Xcode 的示例应用程序,但还没有弄清楚哪个 API 公开了此控件。
NSURL *executableURL = [[NSWorkspace sharedWorkspace] URLForApplicationWithBundleIdentifier:@"com.apple.dt.Xcode"];
NSError *error = nil;
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:executableURL
options:NSWorkspaceLaunchDefault
configuration:nil
error:&error];
if (error) {
NSLog(@"Error launching Xcode: %@", error);
}
查看 NSWorkspaceLaunchOptions 列表,我没有看到任何暗示影响状态恢复的内容。只有几个可用的配置选项,例如传递参数、修改环境或将 Apple 事件传递到启动的应用程序。
可以使用 Apple 事件来阻止状态恢复吗?
最佳答案
应用程序状态存储在~/Library/Saved Application State中。 Xcode 状态位于名为 com.apple.dt.Xcode.savedState 的子文件夹中。一种选择是在启动之前重命名此文件夹,然后将其重命名回来。通过论证可能是更好的方法,但我认为没有普遍的论证。
关于macos - 从另一个 Cocoa 进程在 Lion/ML 上打开 OS X 应用程序,无需恢复 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15851481/