Подтвердить что ты не робот

Как скрыть клавиатуру iPad от контроллера просмотра MODAL?

Я пытаюсь скрыть клавиатуру iPad от модального контроллера, но это не сработает. Я попытался resignFirstResponder, но это не имеет никакого влияния, если мы находимся в модульном контроллере. Я попробовал resignFirstResponder в немодальном UINavigationController с тем же UIViewController, и клавиатура скрывается правильно.

Кто-нибудь знает, как решить эту проблему?

Спасибо.

[Update] похоже, что что-то не так с моим кодом, потому что resignFirstResponder действительно работает (я сделал простой тестовый пример вместо использования моего кода). Но я до сих пор не знаю, в чем проблема.

4b9b3361

Ответ 1

Это было потому, что я использовал UIModalPresentationFormSheet. Все остальные работают так, как ожидалось. Потратили несколько часов на это.

Ответ 3

Это была полная боль, чтобы найти. Похоже, что один из худших проектов API в iOS. Большое спасибо @0xced и @manicaesar за ответы.

Вот мой консолидированный ответ для будущих разработчиков, которые застряли, ударяя головой о стену.

Если это единственный контроллер просмотра, просто переопределите disablesAutomaticKeyboardDismissal и верните NO.

Если это контроллер навигации в модальном режиме, создайте свой собственный подкласс UINavigationController следующим образом:

В .h...

@interface MyNavigationController : UINavigationController

@end

В .m....

@implementation MyNavigationController


#pragma mark -
#pragma mark UIViewController
- (BOOL)disablesAutomaticKeyboardDismissal {
    return NO;
}

@end

В вашем коде, который показывает контроллер модального представления.

UIViewController *someViewController = [[UIViewController alloc] init];

MyNavigationController *navController = [[MyNavigationController alloc] initWithRootViewController:someViewController];

navController.modalPresentationStyle = UIModalPresentationFormSheet;
navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navController animated:YES];

Ответ 4

Я только что подтвердил, что проблема действительно UIModalPresentationFormSheet и подала отчет об ошибке в apple rdar://8084017

Ответ 5

Я решил это, изменив размер UIModalPresentationPageSheet. См. Мой ответ здесь.