8

我们正在使用Xcode 11中的Catalyst将我们基于 Swift 的 iOS 应用程序转换为与 Mac兼容的应用程序。

当用户调整应用程序窗口大小时,我们在 UI 中遇到问题。那么我们可以禁用调整大小模式并为应用程序窗口提供固定框架吗?

4

2 回答 2

9

Beta 5向UIWindowScenesizeRestrictions添加了一个属性。

如果将sizeRestrictions.maximumSize和设置sizeRestrictions.minimumSize为相同的值,则窗口将无法调整大小:

windowScene.sizeRestrictions?.minimumSize = CGSize(width: 640, height: 480)
windowScene.sizeRestrictions?.maximumSize = CGSize(width: 640, height: 480)

添加此代码的最简单位置可能是scene(_:willConnectTo:options:)在您的场景委托中。scene传入的对象是 a UIWindowScene,所以只需转换它然后设置sizeRestrictions

注意:sizeRestrictions仅在 iOS 10.15 Beta 5 中可用。此代码将在较旧的 Beta 中崩溃。

于 2019-08-07T16:15:55.793 回答
1

您可以在您的application:didFinishLaunchingWithOptions方法中调用它:

    UIApplication.shared.connectedScenes.compactMap { $0 as? UIWindowScene }.forEach { windowScene in
        windowScene.sizeRestrictions?.minimumSize = CGSize(width: 480, height: 640)
        windowScene.sizeRestrictions?.maximumSize = CGSize(width: 480, height: 640)
    }
于 2019-09-24T19:56:22.023 回答