iOS 16:如何通过代码让应用排除在Stage Manager之外?
解决iPadOS 16 Stage Manager下应用强制全屏问题
UIRequiresFullScreen在iPadOS 16中对Stage Manager的约束逻辑已调整,仅设置该键无法完全让应用排除在Stage Manager之外,需配合以下Info.plist配置:
- 将
UIApplicationSceneManifest下的UIApplicationSupportsMultipleScenes设为NO - 添加
UIApplicationSceneManifest->UISceneManifestPrefersSingleScene并设为YES,明确告知系统应用仅支持单场景模式 - 检查
UISceneConfigurations->UIWindowSceneSessionRoleApplication下的场景配置,确保未启用多场景相关选项
- 将
若仍有问题,可在代码层面强制窗口锁定全屏(以Swift为例,SceneDelegate中):
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = scene as? UIWindowScene else { return } let window = UIWindow(windowScene: windowScene) window.rootViewController = YourRootViewController() self.window = window window.makeKeyAndVisible() // 锁定窗口尺寸为屏幕大小,禁止缩放 windowScene.sizeRestrictions?.minimumSize = windowScene.screen.bounds.size windowScene.sizeRestrictions?.maximumSize = windowScene.screen.bounds.size }注意:修改Info.plist后需清理Xcode缓存并重新编译应用,确保配置生效
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

