У меня есть выход к 3 TextFields в моем коде следующим образом:UITextField becomeFirstReponder не работает и возвращение ложных
@IBOutlet var oldPasswordTextField: UITextField! { didSet { oldPasswordTextField.delegate = self } }
@IBOutlet var newPasswordTextField: UITextField! { didSet { newPasswordTextField.delegate = self } }
@IBOutlet var confirmPasswordTextField: UITextField! { didSet { confirmPasswordTextField.delegate = self } }
В моем textFieldShouldReturn методе делегата, я хочу сделать следующее текстовое поле в качестве первого ответчика по щелчку возврата следующим образом:
func textFieldShouldReturn(textField: UITextField) -> Bool { //delegate method
textField.resignFirstResponder()
if textField == oldPasswordTextField
{
newPasswordTextField.becomeFirstResponder()
}
else if textField == newPasswordTextField
{
confirmPasswordTextField.becomeFirstResponder()
}
else
{
saveButtonTapped()
}
return true
}
Но он не работал. Поэтому я попытался проверить, что происходит не так. Так что я попытался это:
func textFieldShouldReturn(textField: UITextField) -> Bool { //delegate method
if textField.canResignFirstResponder()
{
print("textField can resign first responder")
if textField.resignFirstResponder() == true
{
print("textField resigned first responder")
}
else
{
print("textField didnt resign first responder")
}
}
else
{
print("textField cant resign first responder")
}
if textField == oldPasswordTextField
{
if newPasswordTextField.canBecomeFirstResponder() == true
{
if newPasswordTextField.becomeFirstResponder() == true
{
print("newPassword field has become first responder")
}
else
{
print("newPassword field cannot become first responder")
}
}
}
else if textField == newPasswordTextField
{
confirmPasswordTextField.becomeFirstResponder()
}
else
{
saveButtonTapped()
}
return true
}
И сверхурочные я получаю «TextField не могу уйти в отставку первый ответчик» «поле Новый_пароль не может стать первым ответчиком» на моей консоли. Я не знаю, что здесь происходит. Почему метод canResignFirstResponder() и методы getsFirstResponder() возвращают false? Любая помощь?
ничто не кажется неправильным и тот же код работает нормально для меня. – Mathews
Получил это. Ошибка в моем коде заключалась в том, что мой метод textFieldShouldEndEditing возвращал false, поэтому метод resignFirstResponder возвращал false, и он не работал. Поэтому я сделал это верным, и он отлично работает. :) – Priyanka