let window: AXUIElement
// Computed from reading kAXPositionAttribute, kAXSizeAttribute from the window, and inverting the Y axis
let windowFrame: CGRect
// Those don't work
let screenWhereWindowIsDisplayed = NSScreen.screens.first(where: { $0.frame.contains(windowFrame) })
let screenWhereWindowIsDisplayed = NSScreen.screens.first(where: { $0.frame.contains(windowFrame.origin) })
我也找不到一种简单的找到显示的方法。 我尝试了:
let containingScreens = NSScreen.screens.filter({ $0.frame.intersects( windowFrame ) })
但根据重叠的方式,它甚至不会总是获得两个屏幕。
:
NScreen.main
将在此处显示窗口后立即更新到该屏幕。 这些步骤是:
在所需的窗口上observe。
等待下一个鼠标按钮发布。获取主屏幕。
kAXMovedNotification