Ocultar keyboard en applicationDidEnterBackground: problema de captura de pantalla

Cuando se presiona el button de inicio, quiero ocultar el keyboard y restablecer mi vista a un estado sano, de modo que cuando la aplicación se inicie / vuelva a empezar de nuevo, no se selecciona ningún campo de text y el keyboard está oculto.

El delegado de mi aplicación tiene esta implementación del método:

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

El keyboard se elimina, pero lo que no obtengo es el siguiente: los documentos de Apple dicen que se toma una instantánea de la aplicación después de que el método regrese. Sin embargo, esto plantea un problema con la animation deslizable del keyboard. A veces, cuando la aplicación se vuelve a iniciar por un breve momento, muestra el keyboard a medio path hacia abajo. Supongo que la captura de pantalla se realiza antes de que la animation haya finalizado.

¿Qué haría para resolver esto, introduzca un timer corto en applicationDidEnterBackground: método? Me pregunto si hay una solución "más limpia".

No he probado esto, pero ¿qué hay de desactivar las animaciones justo antes de renunciar al keyboard:

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

Si esto funciona, debe volver a activarlos en applicationWillEnterForeground