在 SwiftUI 中使用 UITextInputPasswordRules

Jon*_*ann 5 passwords ios swift swiftui

我想在 SwiftUI 代码中使用 UITextInputPasswordRules 来验证用户的密码。

Swift代码看起来像这样的 Codesnippet:

let newPasswordTextField = UITextField()
newPasswordTextField.passwordRules = UITextInputPasswordRules(descriptor: "required: lower; required: upper; required: digit; required: special; allowed: unicode; minlength: 10;")
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的SwiftUI代码看起来像这样:

struct CustomPasswordTextField: View {
    let passwordRuleDescription: String = "required: lower; required: upper; required: digit; required: special; allowed: unicode; minlength: 10;"
    var placeholder: Text
    @Binding var text: String

    var body: some View {
        ZStack(alignment: .leading) {
            if text.isEmpty { placeholder }
            SecureField("", text: $text)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何将passwordRuleDescription 应用于SecureField(", text: $text")

小智 1

尝试...

struct CustomPasswordTextField: View {
    var placeholder: String
    @Binding var text: String

    init(placeholder: String, text: Binding<String>) {
        self.placeholder = placeholder
        self._text = text

        let passwordRuleDescription: String = "required: lower; required: upper; required: digit; required: special; allowed: unicode; minlength: 10;"
        
        UITextField.appearance().passwordRules = UITextInputPasswordRules(descriptor: passwordRuleDescription)
    }
    // body implementation etc...
}
Run Code Online (Sandbox Code Playgroud)