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 ConfigurationUISceneDelegateClassName:填写你的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项目配置
- 打开Xcode项目目标设置,切换到「General」标签。
- 在「Deployment Info」区域的「Mac」部分,确保选中「为iPhone App设计的Mac」。
- 点击「Mac Catalyst Options」,在弹出窗口的「Window Size」设置中,手动输入iPhone标准宽高(如390x844),并勾选「Fixed Size」。
验证操作
完成配置后,重新编译并选择「为iPhone App设计的Mac」运行选项启动应用,窗口将以指定的iPhone标准尺寸打开,布局即可恢复正常。
内容的提问来源于stack exchange,提问作者wtr1
相关产品推荐
相关产品推荐

