SwiftUI SecureField
SecureField 是 SwiftUI 中的安全输入控件,可用于输入密码
iOS 13.0+iPadOS 13.0+macOS 10.15+Mac Catalyst 13.0+tvOS 13.0+watchOS 6.0+
当您想要类似于 TextField
的行为但不希望用户的文本可见时,请使用 SecureField
。 通常,您使用它来输入密码和其他敏感信息。
SecureField
使用与字符串值的绑定,以及在用户提交编辑时执行的闭包,例如通过按下 Return
键。 该字段会在每次击键或其他编辑时更新绑定字符串,因此您可以随时从另一个控件(例如“完成”按钮)读取其值。
以下示例显示了绑定到字符串密码的 SecureField。
如果用户在安全字段中提交他们的编辑,则 onCommit
闭包将密码字符串发送到 handleLogin()
方法。
@State private var username: String = ""
@State private var password: String = ""
var body: some View {
TextField(
"用户名",
text: $username)
.autocapitalization(.none)
.disableAutocorrection(true)
.border(Color(UIColor.separator))
SecureField(
"密码",
text: $password
) {
handleLogin(username: username, password: password)
}
.border(Color(UIColor.separator))
}
表单提示
可以为安全字段提供明确提示,以指导用户应该提供什么文本。 安全字段出现的上下文决定了何时何地可以使用提示和标签。 例如,macOS 上的表单将始终将标签放置在字段的前缘旁边,并在可用时将提示用作字段本身的占位符文本。 在 iOS 上的相同上下文中,提示或标签将用作占位符文本,具体取决于是否提供了提示。
Form {
TextField(text: $username, prompt: Text("Required")) {
Text("用户名")
}
SecureField(text: $username, prompt: Text("Required")) {
Text("密码")
}
}