首页 > 解决方案 > mac Catalyst下如何获取sceneWindow的大小和位置

问题描述

当我使用调整它的大小时,我已经能够获得一个场景窗口的大小

func windowScene(_ windowScene: UIWindowScene, didUpdate previousCoordinateSpace: UICoordinateSpace, interfaceOrientation previousInterfaceOrientation: UIInterfaceOrientation, traitCollection previousTraitCollection: UITraitCollection) {
        print("movement trapped \(windowScene.coordinateSpace.bounds)"
}

在场景委托内。但无论我将窗口拖到哪里,x,y 坐标始终为 0,0。希望能够指示新的场景窗口相对于“默认”场景窗口在 Mac 屏幕上的位置。

标签: swiftmacosmac-catalyst

解决方案


您可以尝试将窗口框架从 windowScene 坐标空间转换为 UIScreen 坐标空间

windowFrame = [window convertRect:window.frame toCoordinateSpace:window.windowScene.screen.coordinateSpace];

推荐阅读