Как и многие другие пользователи, я пытаюсь установить бросок UITextField в UITableViewCell, который будет использоваться для редактирования строки. Но вместо добавления нового представления я пытаюсь использовать свойство accessoryView. Сначала я попробовал это ...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITextField *textField =[[UITextField alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 200.0f, 44.0f)];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryView = textField;
[textField becomeFirstResponder];
}
... и UITextField добавлен правильно, но мне нужно снова нажать на него, чтобы отобразилась клавиатура. Однако, если я сделаю это ...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITextField *textField =[[UITextField alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 200.0f, 44.0f)];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
[cell addSubview:textField];
[textField becomeFirstResponder];
}
... это работает, клавиатура появляется, но я не получаю никаких других преимуществ от ее использования в качестве accessoryView (более удобное позиционирование при перемещении других видов вокруг нее). Я полагаю, что addSubview: call изменяет цепочку респондента или что-то в этом роде и позволяет моему UITextField стать первым респондентом, но подумал, что, возможно, есть другой способ сделать это, позволяя мне вместо этого установить accessoryView ячейки. Спасибо.