Skip to content

TextField 输入框组件

TextField 是 SwiftUI 中的基础输入控件,适用于收集用户输入的文本信息,如姓名、搜索内容、评论等。

🔰 基本用法

swift
@State private var name = ""

var body: some View {
    TextField("请输入姓名", text: $name)
        .textFieldStyle(.roundedBorder)
        .padding()
}

说明:

  • 第一个参数为占位提示文本(Placeholder)
  • text 绑定到一个 @State 变量,用于获取输入内容
  • .textFieldStyle(.roundedBorder) 设置边框样式

🧪 实时输入监听

swift
TextField("输入内容", text: $input)
    .onChange(of: input) { newValue in
        print("当前输入:\\(newValue)")
    }

使用 onChange 方法可监听输入内容的实时变化。

🎨 样式修饰示例

swift
TextField("搜索...", text: $searchText)
    .padding(10)
    .background(Color(.systemGray6))
    .cornerRadius(8)
    .overlay(
        HStack {
            Spacer()
            Image(systemName: "magnifyingglass")
                .foregroundColor(.gray)
                .padding(.trailing, 10)
        }
    )

结合 padding、background、overlay 等修饰符可自定义外观。

🔐 密码输入:SecureField

swift
SecureField("请输入密码", text: $password)
    .textFieldStyle(.roundedBorder)
    .padding()
  • SecureField 是 TextField 的变种
  • 输入内容将以点号隐藏,适合密码、PIN 输入等场景

🧵 多行输入:TextEditor

swift
TextEditor(text: $note)
    .frame(height: 150)
    .overlay(RoundedRectangle(cornerRadius: 8).stroke(Color.gray.opacity(0.5)))
    .padding()

TextEditor 用于多行文本输入,与 TextField 搭配使用适应不同输入需求。

✅ 小贴士

  • 建议为每个 TextField 添加 .keyboardType() 提高输入效率
  • 使用 .submitLabel() 自定义键盘返回按钮的文案
  • 使用 .focused() 控制输入焦点状态

熟练掌握 TextField 的用法,是打造表单、搜索、登录界面等输入场景的关键。配合 SwiftUI 的修饰符系统,可以轻松打造美观实用的输入体验。

Released under the MIT License.