You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在iPad的Stage Manager模式下禁用应用窗口调整大小?

iPad端Stage Manager窗口尺寸限制实现方法

iPad端设置Stage Manager窗口的固定/最小尺寸,API和你用的macCatalyst版本几乎一致,不需要额外的条件编译,直接针对UIWindowScene设置即可,注意需要iOS 16及以上版本(Stage Manager从iOS16开始支持)。

核心实现代码

在App启动后的场景初始化逻辑里添加以下代码(比如SceneDelegate的对应方法,或者SwiftUI的App结构体中):

// 遍历所有已连接的窗口场景
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)
    
    // 如果只需要最小尺寸,只设置minimumSize即可:
    // windowScene.sizeRestrictions?.minimumSize = CGSize(width: 320, height: 480)
}

不同项目类型的放置位置

  • UIKit项目(SceneDelegate):
    把代码放在scene(_:willConnectTo:options:)方法里,确保窗口场景初始化时就应用限制:

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let windowScene = (scene as? UIWindowScene) else { return }
        
        // 设置尺寸限制
        windowScene.sizeRestrictions?.minimumSize = CGSize(width: 480, height: 640)
        windowScene.sizeRestrictions?.maximumSize = CGSize(width: 480, height: 640)
        
        // 其他窗口初始化逻辑...
    }
    
  • SwiftUI项目:
    可以在视图出现后遍历所有场景设置限制:

    @main
    struct YourApp: App {
        var body: some Scene {
            WindowGroup {
                ContentView()
                    .onAppear {
                        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)
                        }
                    }
            }
        }
    }
    

关键注意点

  • 部署目标必须设为iOS 16.0+,否则sizeRestrictions属性会报错;
  • 支持多窗口的应用,遍历所有connectedScenes能确保每个窗口都应用尺寸规则;
  • 固定尺寸需要同时把minimumSize和maximumSize设为相同值,只设minimumSize的话用户可放大窗口但不能小于该尺寸。

内容的提问来源于stack exchange,提问作者Ксения Смирнова

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 13:25:16