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

在Mac应用中使用SwiftUI如何强制文本框显示最少5行?

SwiftUI垂直TextField强制显示最少5行的解决方案

你的代码里lineLimit(5, reservesSpace: true)的用法有误,这个方法的第一个参数是最大行数,并非最少行数。要实现至少显示5行的效果,需要使用带min和max参数的重载方法,具体修改如下:

var body: some View {
    VStack {
        TextField("Title String", text: $viewModel.currentTitle)
        TextField("Text Template", text: $viewModel.currentCode, axis: .vertical)
            .lineLimit(min: 5, max: .infinity) // 指定最少5行,最大行数不限
            .textFieldStyle(.roundedBorder)
    }
    .padding()
}

如果设置后仍未达到预期,可以额外添加frame来确保输入框有足够的最小高度(数值可根据字体大小调整):

TextField("Text Template", text: $viewModel.currentCode, axis: .vertical)
    .lineLimit(min: 5, max: .infinity)
    .frame(minHeight: 120)
    .textFieldStyle(.roundedBorder)

注意事项:

  • 该多行TextField特性需要iOS 16.0+、macOS 13.0+及以上系统版本支持
  • 若需兼容更低版本,推荐使用TextEditor组件,它原生支持多行显示并可轻松设置最小高度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:00:04