Подтвердить что ты не робот

Установите фокус на UITextField в таблицеCell

Я создаю табличное представление с UITextField динамически.

l_textField = [[UITextField alloc] initWithFrame:TextFieldFrame];
l_textField.tag = cellRow;

l_textField.delegate = self;
l_textField.font = [UIFont boldSystemFontOfSize:14];
l_textField.textColor = [UIColor blackColor];
[l_textField setEnabled:YES];

[cell.contentView addSubview:l_textField];

И теперь я хочу сосредоточиться на этом текстовом поле, когда пользователь сенсорный элемент. Я пишу это

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath {
    UITextField* field = (UITextField *) [tblView viewWithTag: newIndexPath.row];
    [field resignFirstResponder];
}

Но это не работает

4b9b3361

Ответ 1

измените [field resignFirstResponder]; на [field becomeFirstResponder];

resignFirstResponder используется для удаления клавиатуры (фокуса) из текстового поля

Ответ 2

Я столкнулся с такой же проблемой, даже правильно используя [field becomeFirstResponder];.

Я также использовал теги, чтобы получить объекты, которые у меня есть внутри ячейки. Ваш didSelectRowAtIndexPath должен выглядеть так, чтобы получить нужную ячейку:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    currentRow = indexPath.row;

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    UITextField *indexField = (UITextField *)[cell viewWithTag:101];
    [indexField becomeFirstResponder];
}

Для меня это работало как прелесть.