Macos 当CGWindow部分脱离屏幕时,如何判断它显示在哪个屏幕上?

Macos 当CGWindow部分脱离屏幕时,如何判断它显示在哪个屏幕上?,macos,window,core-graphics,screen,Macos,Window,Core Graphics,Screen,我使用CGWindowListCreate获得CGWindow的列表,如下所示: CFArrayRef windows = CGWindowListCreate(kCGWindowListOptionOnScreenOnly, 0); 有没有办法知道每个窗口打开了哪个NSScreen?我试着观察窗口边界和屏幕帧的交点,但是如果一个窗口部分脱离屏幕,它可以与另一个屏幕的帧相交 有没有更可靠的方法可以做到这一点?只是想一想,你不能检查窗口框架吗?我应该检查它做什么?我认为可以通过以下方法获得窗口边

我使用
CGWindowListCreate
获得
CGWindow
的列表,如下所示:

CFArrayRef windows = CGWindowListCreate(kCGWindowListOptionOnScreenOnly, 0);
有没有办法知道每个窗口打开了哪个
NSScreen
?我试着观察窗口边界和屏幕帧的交点,但是如果一个窗口部分脱离屏幕,它可以与另一个屏幕的帧相交


有没有更可靠的方法可以做到这一点?

只是想一想,你不能检查窗口框架吗?我应该检查它做什么?我认为可以通过以下方法获得窗口边界:。在此之后,使用CGDisplayBounds获取屏幕边界。检查窗口框架是否在显示矩形内。我可以得到边界,但正如我在问题中所说,当窗口部分在屏幕外时,其边界将在多个屏幕的框架内。当窗口部分在屏幕外时,您得到的边界矩形是什么,显示矩形是什么。