我试图弄清楚如何获取(只读)任何应用程序的整个窗口/视图层次结构。我使用"CGWindowListCopyWindowInfo"
获取所有打开窗口的列表。它还返回窗口编号("kCGWindowNumber"
)。它还显示"kCGWindowSharingState = 1;"
的根窗口共享状态。现在,我想检查该应用程序层次结构中是否存在特定窗口/视图。我得到kCGWindowNumber
这是应用程序的根窗口。
答案 0 :(得分:2)
现在可以通过Xcode的View Debugging功能实现。要使用它:
这应该会向你展示一种"爆炸"在Xcode的左侧窗格中查看应用程序的视图以及它们之间的关系树。
答案 1 :(得分:1)
你真的无法通过Core Graphics做到这一点,因为视图层次结构完全是Cocoa概念。您可以通过Cocoa Scripting Bridge执行此操作,可能与GUI自动化对辅助功能的支持(here's example code for that)结合使用。