在 SwiftUI 中,submitLabel 是一种修饰符,用于自定义键盘右下角的提交按钮标签。这个功能通常用于处理用户在输入字段(例如 TextField 或 SecureField)中的输入,并为用户提供更加直观的提交动作。
基础用法
可以使用 .submitLabel() 修饰符来指定按钮的标签,例如 done、return、search 等。
import SwiftUI
struct ContentView: View {
@State private var text: String = ""
var body: some View {
TextField("Search", text: $text)
.textFieldStyle(.roundedBorder)
.padding()
.submitLabel(.route) // 改变 Return 键为“route”
.onSubmit {
print("Searching for: \(text)")
}
}
}
支持的 SubmitLabel 类型
submitLabel 接受一个类型为 SubmitLabel 的值,该值定义了键盘右下角的按钮标签。以下是常见选项:
结合 onSubmit
submitLabel 通常与 onSubmit 一起使用,用于监听用户按下键盘提交按钮后的操作:
import SwiftUI
struct LoginView: View {
@State private var username = ""
@State private var password = ""
var body: some View {
VStack {
TextField("Username", text: $username)
.submitLabel(.next)
.onSubmit {
// 跳转到下一个输入字段
print("Username submitted: \(username)")
}
.padding()
SecureField("Password", text: $password)
.submitLabel(.go)
.onSubmit {
// 执行登录逻辑
print("Password submitted: \(password)")
}
.padding()
}
.padding()
}
}
在这个例子中:
用户在 “Username” 字段按下提交后,系统响应 onSubmit 中的逻辑。
用户在 “Password” 字段按下提交后,可以触发登录功能。
设备支持
submitLabel 在支持软件键盘的设备上生效,例如:
iPhone 和 iPad 的键盘
macOS 的键盘输入体验也支持此功能