SwiftUI TextEditor
多行文本展示和编辑控件
iOS 14.0+iPadOS 14.0+macOS 11.0+Mac Catalyst 14.0+
TextEditor 用于在 UI 中显示和编辑多行、可滚动的文本。 默认情况下,文本编辑器视图使用从环境继承的特征来设置文本样式,例如 font(_:)
、foregroundColor(_:)
和 multilineTextAlignment(_:)
。
您可以通过将 TextEditor
实例添加到视图主体来创建文本编辑器,并通过将 Binding
传递给应用程序中的字符串变量来对其进行初始化:
struct TextEditingView: View {
@State private var longText: String = "这是一段很长很长很长的文本..."
var body: some View {
TextEditor(text: $longText)
}
}
要设置文本样式,请使用标准视图修饰符来配置系统字体、设置自定义字体或更改视图文本的颜色。
在此示例中,视图使用自定义字体将编辑器的文本呈现为灰色:
struct TextEditingView: View {
@State private var longText: String = "这是一段很长很长很长的文本..."
var body: some View {
TextEditor(text: $longText)
.foregroundColor(Color.gray)
.font(.custom("HelveticaNeue", size: 13))
}
}
如果要更改文本的间距或字体缩放方面,可以使用 lineLimit(_:)
、lineSpacing(_:)
和 minimumScaleFactor(_:)
等修饰符来配置视图根据空间限制显示文本的方式。
例如,这里的 lineSpacing(_:)
修饰符将行间距设置为 5pt:
struct TextEditingView: View {
@State private var longText: String = "这是一段很长很长很长的文本..."
var body: some View {
TextEditor(text: $longText)
.foregroundColor(Color.gray)
.font(.custom("HelveticaNeue", size: 13))
.lineSpacing(5)
}
}