在独立的桌面中打开的Mac OSX应用程序如何在当前桌面中打开

3

我想让一个Mac应用程序在当前桌面上打开,当我使用全局键盘快捷方式(我已经在应用程序中手动覆盖了该快捷方式)时。但是,当我执行键盘快捷键时,我的桌面切换并显示我先前所在的桌面上的应用程序,而不是当前的桌面。该应用程序处于活动状态,但位于另一个桌面上。

目前,我正在调用:

window?.makeKeyAndOrderFront(nil)
NSApplication.shared.activate(ignoringOtherApps: true)

感谢您提前的帮助。


当前和上一个窗口是你的吗?键盘快捷键是全局的吗?当前窗口是最前面的窗口吗?应用程序处于活动状态吗?请编辑问题。 - Willeke
@Willeke 我编辑了这个问题,虽然我不完全确定你所说的“当前和上一个窗口是否属于你”以及“当前窗口是否是最前面的窗口”。我将问题更改为谈论“桌面”而不是“窗口”,因为我认为这可能更清晰。 - Shekar
称呼一个空间为“窗口”非常令人困惑。 - Willeke
1个回答

1
在界面构建器中,选择相关的窗口,在属性检查器中将SpacesInferred Behavior更改为Move To Active Space。这样就可以使窗口显示在当前活动的空间而不是切换回上次显示的空间。
你也可以通过修改窗口的collectionBehavior来以编程方式实现此操作。
window.collectionBehavior.insert(.moveToActiveSpace)

谢谢,那个方法有效!但是,当我离开该空间并返回时,应用程序会被放置在先前活动的应用程序后面。有没有办法防止这种情况发生?我按照您之前建议的,在原问题中的两行代码前后都添加了一行代码,但两种方式都导致了上述行为。 - Shekar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接