У меня есть ViewController с добавленным сгруппированным табличным просмотром. Некоторые ячейки содержат текстовые поля. Я хотел бы переключить первого ответчика на следующее текстовое поле в списке ячеек, когда пользователь нажимает клавишу возврата. Однако я не могу заставить его работать, и я не могу определить, выбрана ли неправильная ячейка или выбрано неверное текстовое поле.переход на следующий UITextField в разных ячейках в группе TableView
Я настраиваю мой тег в cellForRowAtIndexPath со следующим ..
cell.tag = ((indexPath.section + 1) * 10) + indexPath.row;
это создаст тег десятки место быть значение раздела и те места быть значением строки. то есть. Тег 11 является разделом 0 строки 1.
Вот код для моего textFieldShould Return
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
UITableViewCell *cell = (UITableViewCell *)textField.superview;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
cell = [self tableView:_tableView cellForRowAtIndexPath:indexPath];
if (indexPath.section == 0)
{
if (indexPath.row == 0)
{
[[cell viewWithTag:((indexPath.section + 1) * 10) + (indexPath.row + 1)] becomeFirstResponder];
}
if (indexPath.row == 1)
{
[[cell viewWithTag:((indexPath.section + 2) * 10)] becomeFirstResponder];
}
}
return YES;
}
одно замечания, в настоящее время приращения для нового тега HARDCODED, но я хотел бы быть в состоянии пойти к новому тегу без жесткого кодирования фактического значения каждый раз. Это возможно?
Я вижу, я попробую это и посмотрю, как это работает. – JMD
Хорошо, этот метод правильно переключает фокус, однако я хочу, чтобы клавиатура ушла, когда фокус переключен. В настоящее время он остается на экране до тех пор, пока не будет достигнуто последнее текстовое поле. заставляя данные во всех текстовых полях, которые не нужны. – JMD
Если вы хотите, чтобы клавиатура исчезла, когда пользователь отбросит Return, то единственное, что должен сделать ваш метод textFieldShouldReturn', это '[textField resignFirstResponder];'. Отвечает ли это на ваш вопрос? –