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("密码")