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

Xcode开发的iPhone App在M2 Mac运行时窗口尺寸异常问题求助

解决iPhone应用在M2 Mac上以「为iPhone App设计的Mac」运行时窗口异常问题

问题根源

仅支持iPhone的Mac Catalyst应用,默认未绑定iPhone标准屏幕尺寸配置,启动时会使用系统默认的500x300固定窗口,进而引发布局错乱。

解决方案(无需添加iPad支持)

方法1:通过Info.plist配置窗口参数

直接修改项目Info.plist,添加Mac Catalyst窗口的尺寸和样式配置:

  • 找到或添加UIApplicationSceneManifest字典,确保包含UIWindowSceneSessionRoleApplication数组。
  • 在数组的字典项中,添加以下键值对:
    • UIScenePreferredConfiguration(字典类型):
      • UISceneMinimumSize:设置为iPhone标准尺寸,比如<string>{390, 844}</string>(对应iPhone 14系列)
      • UISceneMaximumSize:设置和最小尺寸一致以固定窗口大小,比如<string>{390, 844}</string>
    • UISceneConfigurationName:设为Default Configuration
    • UISceneDelegateClassName:填写你的SceneDelegate类名(如$(PRODUCT_MODULE_NAME).SceneDelegate)

方法2:通过代码强制设置窗口尺寸

在SceneDelegate的scene(_:willConnectTo:options:)方法中,手动指定窗口初始尺寸和限制:

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    guard let windowScene = (scene as? UIWindowScene) else { return }
    
    // 设置iPhone标准尺寸(以iPhone 14为例)
    let targetSize = CGSize(width: 390, height: 844)
    windowScene.sizeRestrictions?.minimumSize = targetSize
    windowScene.sizeRestrictions?.maximumSize = targetSize
    
    // 初始化窗口
    let window = UIWindow(windowScene: windowScene)
    window.rootViewController = YourRootViewController()
    self.window = window
    window.makeKeyAndVisible()
}

方法3:调整Xcode项目配置

  1. 打开Xcode项目目标设置,切换到「General」标签。
  2. 在「Deployment Info」区域的「Mac」部分,确保选中「为iPhone App设计的Mac」。
  3. 点击「Mac Catalyst Options」,在弹出窗口的「Window Size」设置中,手动输入iPhone标准宽高(如390x844),并勾选「Fixed Size」。

验证操作

完成配置后,重新编译并选择「为iPhone App设计的Mac」运行选项启动应用,窗口将以指定的iPhone标准尺寸打开,布局即可恢复正常。

内容的提问来源于stack exchange,提问作者wtr1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 09:52:15