0
私が使用しようとしている拡張機能のあるヘルプを探しています。例えばstatusLabel.textでエラーを出すログインページです。たとえば、間違ったパスワードを入力するとstatusLabel.textこれは私がBAを元に戻すためにステータスラベルをしたいと思い、私のログオンセクションIOS textFieldDidBeginEditing
@IBAction func login(_ sender: Any) {
self.userName.resignFirstResponder()
self.password.resignFirstResponder()
self.repeatPassword.resignFirstResponder()
self.passwordsStack.resignFirstResponder()
self.progress.startAnimating()
switch self.currentLoginType {
case .login:
let email = self.userName.text
let password = self.password.text
FirebaseManager.login(email: email!, password: password!, completion: { (status: Bool, error: Error?) in
if status && error == nil {
if FirebaseManager.isEmailVerified {
self.dismiss(animated: true, completion: nil)
print (error?.localizedDescription ?? "")
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let LoginVC = storyboard.instantiateViewController(withIdentifier: "ReavealVC") as! SWRevealViewController
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.window?.rootViewController = LoginVC
} else {
DispatchQueue.main.async {
self.statusLabel.text = "Your email is not verified. Please check your email"
self.progress.stopAnimating()
print ("have we stopped at email not verified")
self.clearLoginTextFields()
}
}
} else {
DispatchQueue.main.async {
self.progress.stopAnimating()
self.statusLabel.text = FirebaseManager.StringFromError(error: error)
print("have we stopped at email after its not verified")
self.clearLoginTextFields()
}
}
})
case .signup:
if self.password.text == self.repeatPassword.text{
let email = self.userName.text
let password = self.password.text
FirebaseManager.LinkWithEmailAndPassword(email: email!, password: password!, completion: { (status: Bool, error: Error?) in
if status && error == nil {
self.dismiss(animated: true, completion: nil)
self.progress.stopAnimating()
self.statusLabel.text = "Email verification sent, please check you inbox"
print(error?.localizedDescription ?? "")
} else {
DispatchQueue.main.async {
self.progress.stopAnimating()
self.statusLabel.text = FirebaseManager.StringFromError(error: error)
}
}
})
self.view.endEditing(true)
clearLoginTextFields()
}else{
self.progress.stopAnimating()
self.statusLabel.text = "Passwords do not match, please try again!"
}
case .forgotPassword:
FirebaseManager.sendPasswordReset(email: self.userName.text!, completion: { (status:Bool) in
DispatchQueue.main.async {
self.progress.stopAnimating()
self.statusLabel.text = status ? "Reset password sent" : "Error sending reset password"
}
})
break
}
}
そして、私の拡張
extension LoginViewController: UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return true
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
func textFieldDidEndEditing(_ textField: UITextField) {
textField.resignFirstResponder()
}
func textFieldDidBeginEditing(_ textField: UITextField) {
statusLabel.text = ""
}
}
ある
を「間違ったメールは、再度お試しください」と表示されますユーザーが自分の資格情報を再度入力し始めても、私のtextFieldDidBeginEditingが呼び出されていないように見えます。