Как связать textFiledshouldReturn fun c с кнопкой действия - PullRequest
1 голос
/ 02 мая 2020

Как сделать так, чтобы клавиша возврата на клавиатуре TextField выполняла ту же функцию, что и кнопка входа в систему

Пожалуйста, помогите мне, так как я не могу избавиться от действия, но внутри textFiledShouldReturn fun c

проверьте мой код ниже:

class Sign_in: UIViewController, UITextFieldDelegate {


override func viewDidLoad() {
    super.viewDidLoad()

    self.Password.delegate = self
    self.Password.returnKeyType = .go
  }


// To make the return Key in Keyboard do dismiss when pressed
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()

    return  true
}

// Коды аутентификации

@IBOutlet weak var Email: UITextField!
@IBOutlet weak var Password : UITextField!

@IBAction func signIN (_ sender : UIButton) {

    Auth.auth().signIn(withEmail: self.Email.text!, password: self.Password.text!) { (status, error) in
        if error == nil {
            print ("Sign in succeeded")
        } else {
            print ("username or password mismatched: " + error.debugDescription)
        }
    }
}

Я знаю, что могу скопировать весь код авторизации входа во весь текстFiledShouldReturn fun c, но это очень плохо ... так есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 02 мая 2020

Вы можете создать метод для своей авторизации и вызывать этот метод из вашего textFieldShouldReturn и действия кнопки, как показано ниже:

class Sign_in: UIViewController {
    @IBAction func signIN (_ sender : UIButton) {
        authLogin()
    }

    func authLogin() {
         Auth.auth().signIn(withEmail: self.Email.text!, password: self.Password.text!) { (status, error) in
            if error == nil {
                print ("Sign in succeeded")
            } else {
                print ("username or password mismatched: " + error.debugDescription)
            }
        }
    }
}

extension Sign_in : UITextFieldDelegate {
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        authLogin()
        return  true
    }
}
...