watchOS下SwiftUI中带axis参数的TextField无法多行换行的原因
TextField设置axis:.vertical却无法多行显示的原因
问题详情
以下是我的View代码:
@State private var descriptionService: String = "Hello Tim it doesnt work at all" TextField("description".localized, text: $descriptionService, axis: .vertical) .multilineTextAlignment(.center) .padding() .lineLimit(3...7)
实际运行时,按axis: .vertical的设定,该TextField应支持多行显示,但实际并未实现,请问这是什么原因?
解决方案
- 核心原因是当前文本内容未达到换行触发条件。
axis: .vertical的作用是允许TextField在需要时垂直扩展为多行,但默认只有当文本长度超出单行显示宽度时,才会触发换行。 - 你当前的字符串长度较短,在当前布局宽度下可单行容纳,因此没有激活多行效果。
- 验证方式:输入更长的文本,或者手动缩小视图宽度让文本无法单行显示,此时TextField会自动换行并扩展为多行。
- 另外,
lineLimit(3...7)是限制行数的范围,但同样需要文本先触发换行才会生效。
内容的提问来源于stack exchange,提问作者kunass2
相关产品推荐
相关产品推荐

