swiftui - 为什么 TextField 不使用它的 lineLimit 去 SwiftUI 中的下一行?
问题描述
我有一个 TextField,它的 lineLimit 为 10,当 TextField 的文本长度大于它的框架时,它不使用下一行,而是像以前一样继续输入同一行,为什么 TextField 不使用它的 lineLimit?
import SwiftUI
struct ContentView: View {
@State private var stringOfText: String = "Hello, world!"
var body: some View {
TextField("", text: $stringOfText)
.frame(width: 300, height: 200, alignment: .top)
.background(Color.yellow)
.multilineTextAlignment(.leading)
.lineLimit(10)
}
}
解决方案
lineLimit
是一个修饰符(更具体地说,它添加了一个环境属性)Text
,而不是TextField
. 从 SwiftUI 标题中lineLimit
:
行限制适用
Text
于层次结构中的所有实例。
TextField
用于单行输入。SwiftUI 2.0 引入TextEditor
了多行输入,默认情况下会换行。
来自 TextEditor 文档:
如果要更改文本的间距或字体缩放方面,可以使用 lineLimit( :)、lineSpacing( :) 和 minimumScaleFactor( :) 等修饰符来配置视图根据空间限制显示文本的方式。例如,这里的 lineSpacing( :) 修饰符将行间距设置为 5 点:
https://developer.apple.com/documentation/swiftui/texteditor
推荐阅读
- c++ - Fusion有尾部功能吗?
- javascript - Console.table 显示不带引号的字符串
- reactjs - 如何使用 Yup 验证一个字段与另一个字段?
- angular - 如何在 Angular 中将值从 .ts/html 传递到 css/scss?
- join - 将两个分区表合并为一张表,但合并为两个不同的分区
- wcf - System.Net.Sockets.SocketException:现有连接被远程主机强行关闭
- flutter - 为 CircleAvatar wiget (Flutter) 隐藏溢出
- numpy - 根据条件重塑神经网络输入
- java - 处理时间加倍的功能问题
- graphql - GraphQL 错误 FieldsConflict:字段具有不同的列表形状