【发布时间】:2014-12-17 06:02:06
【问题描述】:
我正在使用窗口服务的CGWindowListCreate 和CGWindowListCreateDescriptionFromArray 来获取窗口信息。在常规空间中获取kCGWindowBounds 时,一切正常(我在第 0 级的最前面的窗口周围绘制边框)。但是,当我在全屏应用程序的空间上使用相同的方法时,我会得到无意义的界限:(0, 855, 480, 1)。
如果有一种简单的方法来判断我当前是否在全屏应用的空间中,我不会太在意这一点,因为那样我只需在屏幕周围画一个边框(嗯......它将取决于菜单栏是否显示...)。
这是一个错误,还是有这种行为的原因?
编辑: 想通了我的问题。这是一个比我希望的更大的问题。问题是 API 会通过所有 NSWindows,甚至那些不是正常窗口的。例如,Chrome 底部的加载栏本身就是一个窗口,Mail 在应用程序的顶部也有一些窗口。这是一个问题,因为我无法区分看起来最前面的窗口。
对于我的应用程序,我想捕获一个特定的窗口来拦截其中的鼠标事件。我希望能够让用户按下热键,然后单击所需的窗口进行选择,但是没有 API 可以获取光标下的窗口。我不知道如何继续。
编辑 2: 为了更好地帮助人们找到有用的答案,将标题从:“Quartz Window Services 返回错误的全屏应用程序窗口边界”
【问题讨论】:
标签: cocoa fullscreen nswindow