CGWindowLevel.h文件定义了用于设置窗口级别的常量和可用作窗口级别为20的最大值.但是,如果使用调用CGWindowListCopyWindowInfo检索窗口列表,则可以观察到的值kCGWindowLayer超过20(25,103等).
kCGWindowLayer和窗口级别不一样吗?
如果它们不相同,我如何获得使用CGWindowListCopyWindowInfo获得的窗口的窗口级别?
如果它们相同,为什么我们得到的值> 20?
解决方法
看来kCGWindowLayer确实引用了一个窗口级别,虽然我没有找到任何文档说明这一点.
您似乎认为窗口级别最多为20,因为从kCGBaseWindowLevelKey到kCGAssistiveTechHighWindowLevelKey的枚举,最后一个具有值20.但这些不是窗口级别,它们是可用于使用CGWindowLevelForKey查找窗口级别的键.例如,kCGStatusWindowLevelKey的值为9,但kCGStatusWindowLevel定义为CGWindowLevelForKey(kCGStatusWindowLevelKey),其值为25.