Примечание.
См. Принятый ответ (не получивший наибольшее количество голосов) для решения с iOS 4.3.
Этот вопрос касается поведения, обнаруженного на клавиатуре iPad, при котором он не может быть отклонен, если отображается в модальном диалоговом окне с контроллером навигации.
В принципе, если я представлю контроллер навигации следующей строкой, как показано ниже:
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
Клавиатура отказывается закрывать. Если я закомментирую эту строку, клавиатура уйдет нормально.
...
У меня есть два текстовых поля, имя пользователя и пароль; в имени пользователя есть кнопка «Далее», а для пароля - кнопка «Готово». Клавиатура не исчезнет, если я представлю ее в модальном контроллере навигации.
РАБОТАЕТ
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
[self.view addSubview:b.view];
НЕ РАБОТАЕТ
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController =
[[UINavigationController alloc]
initWithRootViewController:b];
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
Если я удалю часть контроллера навигации и представлю 'b' как контроллер модального представления, он заработает. Проблема с контроллером навигации?
РАБОТАЕТ
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
b.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:b animated:YES];
[b release];
РАБОТАЕТ
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController =
[[UINavigationController alloc]
initWithRootViewController:b];
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
UINavigationController
класса. Ваше здоровье. - person Lorenzo B   schedule 27.06.2012resignFirstResponder
выполняется, но клавиатура все еще отображается. Мой сценарий (презентацияFormSheet с управлением навигацией) точно такой же, как и ваш. Благодаря тонну!! - person sErVerdevIL   schedule 09.01.2013