Как выбрать UITextField?
-
05-07-2019 - |
Вопрос
Я хочу изменить имя пользователя в UITableView. Я добавил UITextField в UITableViewCell, и это, кажется, работает очень хорошо. Но когда пользователь касается ячейки (даже за пределами текстового поля), он ожидает редактирования.
Как программно выделить текстовое поле?
Код будет выглядеть примерно так:
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
userName.selected = TRUE;
}
Решение
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cellSelected = [tableView cellForRowAtIndexPath: indexPath];
UITextField *textField = [[cellSelected.contentView subviews] objectAtIndex: 0];
[textField becomeFirstResponder];
[tableView deselectRowAtIndexPath: indexPath animated: NO];
}
Предполагается, что у вас нет более быстрого способа узнать, какой объект UITextField находится в какой ячейке, и что вы точно знаете, что UITextField будет первым подпредставлением.
Вы также можете захотеть поставить галочку для [textField isFirstResponder] - нет смысла делать его firstResponder, если он уже есть. Это не может быть необходимым, хотя.
Не связан с StackOverflow