Скрыть клавиатуру в приложении DidEnterBackground: - проблема с скриншотом - PullRequest
3 голосов
/ 11 января 2011

Когда нажимается кнопка «Домой», я хочу спрятать клавиатуру и вернуть мой вид в нормальное состояние, чтобы при повторном запуске приложения в фоновом режиме текстовое поле не выбиралось и клавиатура была скрыта.

Мой делегат приложения имеет эту реализацию метода:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [tabBarController.view endEditing:YES];
}

Клавиатура действительно удаляется, но чего я не получаю, так это: документы Apple говорят, что снимок приложения делается после , когда метод возвращается. Однако это создает проблему с анимацией скольжения клавиатуры. Иногда, когда приложение запускается снова на короткое время, оно показывает клавиатуру на полпути вниз. Я предполагаю, что снимок экрана сделан до завершения анимации.

Что бы я сделал, чтобы решить эту проблему, ввести короткий таймер в методе applicationDidEnterBackground:? Интересно, есть ли "более чистое" решение?

1 Ответ

0 голосов
/ 02 июня 2011

Я не пробовал это, но как насчет выключения анимации непосредственно перед тем, как вы увольняете клавиатуру:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [UIView setAnimationsEnabled:NO];
     [tabBarController.view endEditing:YES];
}

Если это работает, вам нужно включить их снова в applicationWillEnterForeground

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...