SwiftUI TextField

可编辑文本控件
iOS 13.0+iPadOS 13.0+macOS 10.15+Mac Catalyst 13.0+tvOS 13.0+watchOS 6.0+

您创建一个带有标签和值绑定的文本字段。 如果值是字符串,则文本字段会在用户键入或编辑字段中的文本时不断更新此值。 对于非字符串类型,它会在用户提交编辑时更新值,例如按下 Return 键。

下面的示例显示了一个接受用户名的文本字段,以及它下方的一个文本视图,它隐藏了用户名的不断更新的值。 当用户开始和结束编辑时,文本视图会改变颜色。 当用户将完成的条目提交到文本字段时,onSubmit(of:_:) 修饰符调用内部 validate(name:) 方法。

@State private var username: String = ""
@FocusState private var emailFieldIsFocused: Bool = false

var body: some View {
    TextField(
        "User name (email address)",
        text: $username
    )
    .focused($emailFieldIsFocused)
    .onSubmit {
        validate(name: username)
    }
    .textInputAutocapitalization(.never)
    .disableAutocorrection(true)
    .border(.secondary)

    Text(username)
        .foregroundColor(emailFieldIsFocused ? .red : .blue)
}
SwiftUI TextField echoText