基本使用场景差异
- TextField:通常用于单行文本输入,比如用户名、密码、搜索框等场景,用户输入内容较短且无需多行展示。
- TextEditor:适用于多行文本输入,例如撰写邮件正文、文章内容等场景,用户可能需要输入大量文本。
外观差异
- TextField:一般显示为单行,有边框或底纹来表示输入区域,外观相对简洁。
- TextEditor:默认是无边界的多行文本区域,会根据内容自动换行。
交互特性差异
- TextField:输入时通常自动完成、校正等功能可能更常用,一般回车键触发特定操作(如搜索、登录等)。
- TextEditor:多行输入时支持滚动,更注重文本编辑的便利性,回车键用于换行。
示例代码
创建带有占位文本的TextField
import SwiftUI
struct ContentView: View {
@State private var text = ""
var body: some View {
TextField("请输入内容", text: $text)
.padding()
.textFieldStyle(RoundedBorderTextFieldStyle())
}
}
创建可以多行输入的TextEditor
import SwiftUI
struct ContentView: View {
@State private var text = ""
var body: some View {
TextEditor(text: $text)
.padding()
.frame(height: 200)
.border(Color.gray)
}
}