在活动的 OS X 桌面上保留一个窗口

Posted

技术标签:

【中文标题】在活动的 OS X 桌面上保留一个窗口【英文标题】:Keeping a window on the active OS X desktop 【发布时间】:2014-08-15 13:16:00 【问题描述】:

在 OS X Mission Control 中,用户可以创建多个桌面。

如果出现系统消息,例如在系统偏好设置中单击挂锁时请求身份验证,则在用户切换桌面时,消息对话框将始终可见;消息对话框移至活动桌面。

如何使用我自己的对话框创建相同的行为。目前我在 Qt 中有一个基于 QDialog 的消息对话框的应用程序。

使用 Qt 是可取的,但如果 Qt 无法做到这一点,那么如何使用本机 Objective-c (Cocoa) 窗口来做到这一点?

【问题讨论】:

【参考方案1】:

如果您设置窗口标志Qt::Popup 它应该显示在活动桌面空间上,这就是 QMessageBox 的工作方式 IIRC 并且肯定会显示在活动桌面空间上。

编辑; https://***.com/a/16882717/741595 展示了如何使用 Cocoa 桥接器。

【讨论】:

不,这行不通。它只是删除了标题栏,并且在我切换桌面时仍然无法移动到活动桌面。我可以让对话框出现在当前活动桌面上,但我需要它随着活动桌面的变化而移动。

以上是关于在活动的 OS X 桌面上保留一个窗口的主要内容,如果未能解决你的问题,请参考以下文章

Windows 10 中非活动桌面上的 PrintWindow

将鼠标事件发送到非活动和隐藏的窗口/WPF 窗体

在 OS X 上使用 objc 最小化 Finder 窗口时遇到问题

用于在 Windows 中自动执行桌面活动的 Python 代码

OS X/Cocoa:在透明窗口内的 NSView 上绘图

c_cpp 获取X窗口系统上的活动窗口