如何在不关注macOS的情况下显示窗口?

时间:2017-09-03 13:14:29

标签: swift macos cocoa nswindow

我想知道如何聚焦浮动焦点,另一个窗口仍然有焦点!

enter image description here

我可以轻松地将窗口悬挂在window?.level = Int(CGWindowLevelForKey(.maximumWindow))的所有其他窗口上,但我不能让两个窗口都有焦点,帮助!

Cocoa中是否有像ShowWithoutActivating这样的函数?

1 个答案:

答案 0 :(得分:8)

我一直在玩这个,当最前面的窗口不是与最前面的应用程序相同的进程时,我似乎能够产生这种效果,这是我怀疑Spotlight可能正在做的事情。我可以这样做:

  1. 在我的应用的Info.plist中将LSUIElement设置为YES。

  2. 在Interface Builder中,将窗口的类设置为NSPanel,选中" Non Activating"在Attributes Inspector中,设置" isFloatingPanel"在Identity Inspector下的用户定义的运行时属性中为YES。

  3. 在一段时间内,其他一些应用程序就在前面(我只是花了5秒的时间让自己有时间将一些其他应用程序弹到前面并选择一个文本字段),请致电makeKeyAndOrderFront()在窗口后跟orderFrontRegardless()

  4. 当我这样做时,我得到以下内容(注意仍然在Xcode"" Module"字段上绘制了对焦环):

    enter image description here