macos - 从另一个 Cocoa 进程在 Lion/ML 上打开 OS X 应用程序,无需恢复 Windows

标签 macos cocoa

我希望在 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/

相关文章:

objective-c - 与所选 NSMenuItem 的背景完全匹配

ruby - 在 Mac 上生成音调/正弦波的简单方法? ( ruby 会很好)

java - Catalina 上的 Aptana 3 错误 - 需要旧版 Java 运行时 6

macos - 无法在本地主机上启动 Go 服务器

objective-c - 自动保存并非源自用户的 NSDocument 模型更改

cocoa - 以编程方式强制 Spotlight 为特定不可见文件类型的元数据建立索引

cocoa - 尝试插入nil

macos - 无法让 GTK 主题在 OS X 上运行

ios - Swift : How $0 works in Array. forEach?

macos - fswatch 仅监视特定文件扩展名