#swift #macos
Вопрос:
Я использую эту minX
функцию, чтобы получить крайнее левое горизонтальное положение главного окна приложения. Это отлично работает с одним экраном, но у меня настроено несколько мониторов, он сообщает о положении, как если бы окно приложения находилось на встроенном экране, даже если оно находится на большом внешнем экране.
Поэтому, если я перетащу окно слева от встроенного экрана, оно покажет 0.0 (идеально), я перетащу окно слева от внешнего экрана, оно покажет -219.0
Я хочу, чтобы он сообщал о правильном положении на экране, в котором он находится в данный момент.
Мой код приведен ниже:
@objc func windowDidMove(_ notification: Notification) { // NSWindowDelegate function
let newXposition = self.view.window!.frame.minX // this gets pixel count from left of app window to left of screen
print("windowDidMove new origin:", newXposition)
}
Любые идеи были бы великолепны.
Комментарии:
1. NSScreen имеет ряд методов преобразования прямоугольников из глобального пространства экрана в координатное пространство конкретного экрана. Посмотрите документацию NSScreen в разделе «Преобразование координат задней части экрана».