我指的是属于我的应用程序(进程)的所有窗口。我需要得到类似(NSWindow *)的所有内容。请注意,某些窗口是由第三方插件创建的,[NSApp windows]无法访问。是的,我知道,Quartz Window Services可以通过PID返回所有窗口。但是我怎么能通过CGWindowID获得NSWindow呢?谢谢!
答案 0 :(得分:3)
尝试NSWindowList
获取窗口编号,然后-[NSApplication windowWithWindowNumber:]
获取NSWindows。
答案 1 :(得分:2)
通常NSWindowList()
会给出窗口ID。还有Quartz Window Services可以提供帮助。
NSWindow*
(Cocoa)[NSApp windowWithWindowNumber: (NSInteger)windowID]
方法。WindowRef
(碳)HIWindowFromCGWindowID()
功能。如果上述两种方法都不起作用,则表示该窗口是使用CoreGraphics Private API创建的。由于逆向工程,其定义is available。
关于Mac上的X11窗口,它们是使用Xplugin库(Xquartz)创建的,该库是封闭源代码,也使用CoreGraphics Private API。