Уже второй день и не могу разобраться в проблеме,
У меня UITabelView
с пользовательским UICellViews
, каждый пользовательский UICellView
состоит из UILabel
и UITextField
.
Пользовательский UICellView
объект выделяет UITextField
и UILabel
в его методе init
и освобождается в dealloc
.
Количество пользовательских UICellViews
в UITableView
равно 6.
Сценарий пользователя следующий
- Когда пользователь нажимает от 1 до 5
UITextFields
, открывается виртуальная клавиатура и пользователь набирает текст
- Когда пользователь нажимает 6-ю
UITextField
, если виртуальная клавиатура активна, она должна быть скрыта, а если она скрыта, она не должна отображаться.
Как реализовать протокол UITextFieldDelegate
в моем классе UIViewController
и установить делегата каждого UITextField
на себя.
Мои методы делегата следующие
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if (textField.tag != 6) {
return YES;
} else {
[textField resignFirstResponder];
return NO;
}
}
-(BOOL) textFieldShouldEndEditing:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
-(void) textFieldDidBeginEditing:(UITextField *)textField {
/* Some code */
}
-(void) textFieldDidEndEditing:(UITextField *)textField
{
[textField resignFirstResponder];
}
Все функции работают правильно!
Итак, теперь виртуальная клавиатура никогда не скрывается, почему это происходит?
PS. Аналогичный код работал на iPhone, но эта проблема существует на iPad.