我想知道显示窗口的屏幕上的哪个屏幕,以帮助其与屏幕的边界正确定位。我该怎么做?

问题描述 投票:0回答:1

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 ) }) enter image description here 但根据重叠的方式,它甚至不会总是获得两个屏幕。

也许我在这里忽略了一些东西;但是我发现了这段缠绕的解决方案:
swift macos accessibility
1个回答
0
投票
NScreen.main

将在此处显示窗口后立即更新到该屏幕。 这些步骤是:

在所需的窗口上observe。
等待下一个鼠标按钮发布。
获取主屏幕。

kAXMovedNotification

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.