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

Posted

技术标签:

【中文标题】在 Swift 的 UITextfield 中显示用户输入的密码【英文标题】:Show password typed by user in UITextfield in Swift 【发布时间】:2018-08-31 14:17:59 【问题描述】:

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

【问题讨论】:

您需要关闭安全进入。 这能回答你的问题吗? How to toggle a UITextField secure text entry (hide password) in Swift? 【参考方案1】:

根据Apple DocìsSecureTextEntry 是可写属性

所以你需要在你的showPassword IBAction 中设置它来切换它:

existingPasswordTexfField.isSecureTextEntry = false

或者只是

existingPasswordTexfField.isSecureTextEntry = !changePasswordSwitch.isOn

【讨论】:

【参考方案2】:

当用户拨动开关时,您需要更改文本字段上的 isSecureTextEntry 标志。

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

【讨论】:

【参考方案3】:

这也是可行的

existingPasswordTexfField.isSecureTextEntry = changePasswordSwitch.isOn ? false : true

【讨论】:

或者简单地说:existingPasswordTexfField.isSecureTextEntry = !changePasswordSwitch.isOn 这样更好。谢谢。

以上是关于在 Swift 的 UITextfield 中显示用户输入的密码的主要内容,如果未能解决你的问题,请参考以下文章

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

Swift:点击 UITextField 时如何显示 UIPickerView

在 Swift 中显示 UITextField 的底部边框不适用于约束。

如何在 Swift 中一一显示 UITextField?

如何在 viewDidLoad 上的 Swift 中显示没有 UITextField 的标准数字键盘

如何在 Swift 中的 UITextField 下显示错误