visionOS中如何设置WindowGroup的指定尺寸?
在visionOS中为WindowGroup设置特定尺寸的解决方案
在visionOS中直接使用.defaultSize(width:height:depth:)可能不生效,核心原因是visionOS默认允许用户自由调整窗口大小,且窗口尺寸会优先适配内容的固有大小。要让指定尺寸生效,可按以下两种场景处理:
1. 固定窗口尺寸(禁止用户调整)
如果希望窗口保持固定大小、无法被用户拖动调整,需同时添加.windowResizability(.contentSize)修饰符,它会锁定窗口尺寸为你设置的默认值:
WindowGroup { ContentView() } .defaultSize(width: 200.0, height: 200.0, depth: 200.0) .windowResizability(.contentSize)
2. 设置默认尺寸(允许用户调整)
如果只是想设置初始默认尺寸,但保留用户调整窗口的权限,需要确保根视图(比如ContentView)有明确的尺寸约束,窗口会根据内容大小应用默认尺寸:
struct ContentView: View { var body: some View { VStack { Text("VisionOS Custom Window") } .frame(width: 200, height: 200, depth: 200) } } WindowGroup { ContentView() } .defaultSize(width: 200.0, height: 200.0, depth: 200.0)
额外排查步骤
如果上述设置仍不生效,可尝试:
- 重启visionOS模拟器,彻底清除应用缓存
- 清理Xcode的Derived Data(路径:
Xcode > Settings > Locations > Derived Data,点击文件夹图标后删除对应项目的缓存)
内容的提问来源于stack exchange,提问作者ixany
相关产品推荐
相关产品推荐

