Как выбрать UITextField? - PullRequest
       10

Как выбрать UITextField?

7 голосов
/ 30 июля 2009

Я хочу изменить имя пользователя внутри UITableView. Я добавил UITextField в UITableViewCell, и это, кажется, работает очень хорошо. Но когда пользователь касается ячейки (даже за пределами текстового поля), он ожидает редактирования.

Как программно выделить текстовое поле?

Код будет выглядеть примерно так:

- (void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
userName.selected = TRUE;
}

1 Ответ

14 голосов
/ 30 июля 2009
- (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, если он уже есть. Это не может быть необходимым, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...