cocoa – 使用NSWorkspace启动应用程序而不激活它或切换空间

我尝试在后台启动应用程序,而不激活它.我只是在NSWorkspace上使用这个方法在后台启动它:

[[NSWorkspace sharedWorkspace] launchAppWithBundleIdentifier:bundleID
                               options:(NSWorkspaceLaunchWithoutActivation | 
                                        NSWorkspaceLaunchAllowingClassicStartup)
                               additionalEventParamDescriptor:nil launchIdentifier:NULL];

唯一的问题是它不会激活应用程序,但它会将空间切换到该应用程序的指定空间.有什么办法可以避免这个吗

最佳答案 您是否可以控制正在启动的应用程序?如果是这样,请覆盖其窗口的
window collection behavior.您可能希望通过命令行参数或类似方法使其可控,因此当用户手动启动应用程序时,仍然会遵守Spaces设置.

如果您启动的应用程序不在您的控制之下,那么using AppleScript to temporarily override its Space assignment如何,然后将分配更改回原始值?

点赞