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

macOS SwiftUI如何让设置窗口固定宽度且高度可调整?

实现固定宽度、高度可调整的macOS设置窗口

要让SwiftUI的Settings窗口固定宽度且支持高度调整,你可以通过视图尺寸约束配合窗口可调整性配置来实现,具体方案如下:

1. 核心实现代码

直接修改Settings场景的视图约束与窗口属性即可:

var body: some Scene {
    WindowGroup {
        Text("test")
    }
    Settings {
        Rectangle()
            .fill(Color.red)
            // 固定宽度:最小/最大宽度设为相同值
            .frame(minWidth: 320, maxWidth: 320)
            // 高度可调整:设置最小高度,最大高度放开限制
            .frame(minHeight: 240, maxHeight: .infinity)
    }
    // 配置窗口遵循内容尺寸约束,允许调整
    .windowResizability(.contentSize)
}

2. 关键逻辑说明

  • 固定宽度:通过frame(minWidth:maxWidth:)将最小和最大宽度设为相同值,强制窗口宽度保持固定;
  • 高度可调:设置minHeight避免窗口过小,maxHeight: .infinity允许用户向上拖动调整高度;
  • 窗口可调整性:.windowResizability(.contentSize)让窗口遵循内容的尺寸约束,确保上述设置生效。

进阶补充(可选)

如果需要更精细的窗口控制,比如限制高度上限,可以把maxHeight设为具体数值(如600);若要适配不同系统版本,也可以通过NSWindow的底层API修改,但上述SwiftUI原生方案已能覆盖大部分场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:14:49