How to toggle a UITextField secure text entry (hide password) in Swift?

前端 未结 24 2583
时光取名叫无心
时光取名叫无心 2021-01-30 02:00

I currently have a UITextfield with an eye icon in it that when pressed is supposed to toggle the secure text entry on and off.

I know you can che

24条回答
  •  轮回少年
    2021-01-30 02:58

    I wrote extension for the same. To provide Password toggle.

    1. In your Assets first add images that you want for toggle.

    2. Add following Extension for UITextField.

      extension UITextField {
      fileprivate func setPasswordToggleImage(_ button: UIButton) {
          if(isSecureTextEntry){
              button.setImage(UIImage(named: "ic_password_visible"), for: .normal)
          }else{
              button.setImage(UIImage(named: "ic_password_invisible"), for: .normal)
      
          }
      }
      
      func enablePasswordToggle(){
          let button = UIButton(type: .custom)
          setPasswordToggleImage(button)
          button.imageEdgeInsets = UIEdgeInsets(top: 0, left: -16, bottom: 0, right: 0)
          button.frame = CGRect(x: CGFloat(self.frame.size.width - 25), y: CGFloat(5), width: CGFloat(25), height: CGFloat(25))
          button.addTarget(self, action: #selector(self.togglePasswordView), for: .touchUpInside)
          self.rightView = button
          self.rightViewMode = .always
      }
      @IBAction func togglePasswordView(_ sender: Any) {
          self.isSecureTextEntry = !self.isSecureTextEntry
          setPasswordToggleImage(sender as! UIButton)
      }
      }
      
    3. Call extension on your UITextView Outlet

       override func viewDidLoad() {
                   super.viewDidLoad()
                   txtPassword.enablePasswordToggle()
                   txtConfirmPassword.enablePasswordToggle()
               }
      

提交回复
热议问题