У меня есть приложение для обработки основных данных, которое использует контроллер навигации для перехода к подробному представлению, а затем, если вы редактируете одну из строк данных в подробном представлении, вы попадаете в представление редактирования для этой отдельной строки, например в примере Apples CoreDataBooks (за исключением того, что CoreDataBooks использует только UITextField
сам по себе, а не тот, который является подпредставлением UITableViewCell
, как у меня)!
Представлением редактирования является UITableviewController
, которое создает свою таблицу с одной строкой, отдельной строкой и UITextfield
в ячейке, программно.
Что я хочу сделать, так это когда вы выбираете строку для редактирования и представление редактирования помещается в стек навигации, а представление редактирования анимируется при перемещении по экрану, я хочу, чтобы текстовое поле было выбрано как firstResponder, чтобы клавиатура уже показывает, как вид перемещается по экрану, чтобы занять позицию. Как в приложении «Контакты» или в приложении CoreDataBooks.
В настоящее время у меня есть следующий код в моем приложении, который вызывает загрузку представления, и затем вы видите, что появляется клавиатура (это не то, что я хочу, я хочу, чтобы клавиатура уже была там)
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[theTextField becomeFirstResponder];
}
Вы не можете поместить это в -viewWillAppear
, так как текстовое поле еще не создано, поэтому theTextField
равно нулю. В приложении CoreDataBooks, где они достигают того, чего я хочу, они загружают свое представление из пера, чтобы они использовали тот же код, но в -viewWillAppear
, поскольку текстовое поле уже создано!
Есть ли способ обойти это без создания пера, я хочу сохранить реализацию программной, чтобы обеспечить большую гибкость.
Большое спасибо