gpt4 book ai didi

swift - 如何在不窃取 macOS 焦点的情况下显示窗口?

转载 作者:搜寻专家 更新时间:2023-10-31 08:17:24 26 4
gpt4 key购买 nike

我在想怎么聚光灯随着焦点漂浮,而另一个窗口仍然有焦点!

enter image description here

我可以使用 window?.level = Int(CGWindowLevelForKey(.maximumWindow)) 轻松地让一个窗口 float 在所有其他窗口之上,但我不能让两个窗口都具有焦点,帮助!

Cocoa中有没有类似ShowWithoutActivating的函数?

最佳答案

我一直在研究这个问题,当最前面的窗口与最前面的应用程序不是来自同一个进程时,我似乎能够产生这种效果,我怀疑 Spotlight 可能正在这样做。我可以这样实现:

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

  2. 在 Interface Builder 中,将窗口的类设置为 NSPanel,在属性检查器中选中“非激活”,并在身份检查器下的用户定义运行时属性中将“isFloatingPanel”设置为 YES。

  3. 在某个其他应用程序出现在前面的一段时间内(我只是使用了 5 秒的延迟让自己有时间将其他应用程序弹出到前面并选择一个文本字段),调用 makeKeyAndOrderFront( ) 后跟窗口上的 orderFrontRegardless()

当我这样做时,我得到以下信息(注意焦点环仍然绘制在 Xcode 的“模块”字段上):

enter image description here

关于swift - 如何在不窃取 macOS 焦点的情况下显示窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46023769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com