У меня есть UITableViewController
с пользовательскими UITableViewCell
, которые содержат UITextField
. При переключении представления таблицы в режим редактирования я добавляю новую ячейку в конец таблицы и хочу сделать эту ячейку becomeFirstResponder
. Мой метод tableView:cellForRowAtIndexPath:
проверяет эту нижнюю ячейку, поэтому я просто добавил строку:
[cell.theTextField становится первым ответчиком];
Который, как я считал, должен работать. Однако при первом отображении табличного представления оно, похоже, не работает. НО, если я выберу ячейку (сделав ее первым респондентом), затем выйду из режима редактирования (вызвав resignFirstResponder
в моем коде), я смогу вернуться в режим редактирования, и волшебным образом она станет первым респондентом, как я и ожидал!
Обратите внимание, что даже если я выйду из режима редактирования с другой выбранной ячейкой (все они имеют текстовые поля) и выйду из режима редактирования, а затем вернусь, он все равно будет работать, до тех пор, пока strong> в какой-то момент я сделал последнюю ячейку becomeFirstResponder
(выбрав ее).
Итак, я предполагаю, что когда он впервые становится первым ответившим, что-то устанавливается либо в табличном представлении, либо в каком-то другом месте, которое изначально не было установлено, и с этого момента это работает.
У кого-нибудь есть идеи относительно того, что здесь может происходить?