在 Swift 的 UITextfield 中显示用户输入的密码

Show password typed by user in UITextfield in Swift

我有密码 UITextfield,目前已作为安全入口打开。我想在 UISwitch is turned on 时向用户显示他在 UITextfield 中再次键入通知文本的密码。到目前为止,这是我的实现。当我在控制台中打印出来但不在 UITextfield 中时,它起作用了。我想在 UISwitch 打开时显示它,在 UISwitch 关闭时显示它。

@IBOutlet weak var existingPasswordTexfField: UITextField!
@IBOutlet weak var newPasswordTextField: UITextField!
@IBOutlet weak var changePasswordSwitch: UISwitch!

@IBAction func showPassword(_ sender: UISwitch) {
    if changePasswordSwitch.isOn {
        guard let oldText = existingPasswordTexfField.text else { return }

        if existingPasswordTexfField.isSecureTextEntry {
            existingPasswordTexfField.text = oldText
        } else {
            print("Pawword is already secure")
        }
    }
}

您需要在用户按下开关时更改文本字段上的 isSecureTextEntry 标志。

@IBAction func showPassword(_ sender: UISwitch) {
    existingPasswordTextField.isSecureTextEntry = changePasswordSwitch.isOn
}

根据 Apple Doc ìsSecureTextEntry 是可写的 属性

所以你在你的 showPassword IBAction 中你需要设置它在某个时候切换它:

existingPasswordTexfField.isSecureTextEntry = false

或者只是

existingPasswordTexfField.isSecureTextEntry = !changePasswordSwitch.isOn

这也行

existingPasswordTexfField.isSecureTextEntry = changePasswordSwitch.isOn ? false : true