用户登录后清除密码文本字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户登录后清除密码文本字段相关的知识,希望对你有一定的参考价值。

如果用户登录,然后立即退回,密码文本字段仍然填充其密码。但为了安全起见,我想让他们不得不重新输入密码。我正在使用firebase身份验证

Auth.auth().signIn(withEmail: emailTF.text!, password: passwordTF.text!) { (user, error) in
        if error == nil && user != nil {
            print("Successful Login!")
            self.passwordTF.text = nil
        } else {
            print("Error logging in: (error!.localizedDescription)")
        }

这就是我到目前为止,它清空了文本字段,但有一个问题。有一个函数可以检查用户名或密码文本字段是否为空。如果其中之一是,则禁用登录按钮。使用这种清空文本字段的方法,禁用登录按钮的功能不再起作用。用户注销后,密码文本字段为空,但启用了登录按钮,不应该是。

@objc func editingChanged() {
    if emailTF.text!.isEmpty || passwordTF.text!.isEmpty {
        loginButton.isEnabled = false
        loginButton.alpha = 0.5
        //print("Email and password fields NOT FILLED in")
    } else {
        loginButton.alpha = 1
        loginButton.isEnabled = true
        //print("Email and password field FILLED in")
    }
}
答案

改变这一行

self.passwordTF.text = ""

为了避免在代码中强行解包变量,它总会得到回报,如下所示:

@objc func editingChanged() {
    guard let email = emailTF.text, let password = passwordTF.text else {
        return
    }
    if email.isEmpty || password.isEmpty {
    //rest of your code
}

并确保你在editingChanged()打电话给viewDidAppear()

以上是关于用户登录后清除密码文本字段的主要内容,如果未能解决你的问题,请参考以下文章

用户正确回答后如何清除文本字段?

QLineEdit 单击时清除文本并从按钮读取文本[关闭]

是否可以清除窗体文本框中的内存?

清除按钮按下swiftui时如何自动上一个文本字段

iOS的登录流程

Eclipse中怎么清除Git用户名和密码