2011-06-12 26 views
4

我尝试在后台启动应用程序,而不激活它。我只是在NSWorkspace这种方法来启动它的背景:使用NSWorkspace启动应用程序而不激活它或切换空间

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

唯一的问题是,它不激活的应用程序,但它确实开关空间到该应用程序的分配空间。任何方式来避免这种情况?

回答

2

你对所启动的应用程序有任何控制权吗?如果是,请覆盖其窗口的window collection behavior。您可能希望通过命令行参数或类似方法进行控制,因此当用户手动启动应用程序时,空间设置仍然受到尊重。

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

+0

不,我对启动的应用程序没有任何控制权。使用AppleScript将不起作用,因为在午餐过程中,空间的切换只会暂时附加。而且由于AppleScript只能在应用程序启动时更改空间,所以它不会起作用... – gcamp 2011-06-16 21:21:19

+0

但是,非常感谢这些建议,非常感谢。 – gcamp 2011-06-16 21:21:53

相关问题