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)
    }
}