У меня есть следующая ситуация в моей настройке нескольких мониторов:
В этом примере я хочу расположить окно точно в координатах, обозначенных желтой стрелкой. Тем не менее, все, что у меня есть, - это координаты NSView, который является подвидным содержимым ContentView NSWindow, который охватывает весь (больший, верхний) дополнительный монитор.
Здесь определяется глобальное пространство координат:
- {0,0} - координата верхнего левого угла экрана ноутбука. (Зеленый)
- {- 296, -1080} - координата верхнего левого угла моего второго экрана (черный)
- {0, 800} - координата нижнего левого угла (здесь нет стрелки)
Таким образом, y растет вниз с зеленой стрелки, уменьшаясь вверх от зеленой стрелки.
Проблема:
Как преобразовать точку, обозначенную желтой стрелкой ({100,100}, NSView внутри NSWindow внутри этого NSScreen) в эту глобальную систему координат. ( Примечание: в NSView система координат имеет {0,0} в левом нижнем углу, увеличиваясь вверх.)
Я верю, что правильный ответ - {-196, -980}, но зачем код для этого преобразования для любого окна на любом экране?
Я потратил слишком много времени на эту проблему, поэтому любая помощь очень ценится.
(Не уверен, если это уместно, но на нижнем экране отображается разрешение сетчатки.)