Muy bien, este problema me ha estado volviendo loco.
Después de tocar mi teclado, el teclado aparece aproximadamente de 3 a 4 segundos UITextField
. Esto solo ocurre la primera vez que aparece el teclado desde que se lanzó la aplicación, luego la animación comienza instantáneamente.
Al principio pensé que era un problema cargar demasiadas imágenes, o mi UITableView
, pero acabo de crear un nuevo proyecto con solo un UITextField
, y todavía tengo este problema. Estoy usando iOS 5, Xcode ver 4.2 y ejecuto un iPhone 4S.
Este es mi código:
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 20, 280, 30)];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.delegate = self;
[self.view addSubview:textField];
}
@end
¿Es este un problema común para todas las aplicaciones?
En este momento, la única forma en que puedo mejorarlo es textField
convirtiéndome en el primer respondedor viewDidAppear
, pero eso no resuelve el problema por completo, solo carga el retraso cuando se carga la vista. Si hago clic textField
inmediatamente cuando se carga la vista, sigo teniendo el problema; Si espero 3-4 segundos después de que se carga la vista antes de tocar el campo de texto, no recibo el retraso.
Entonces, el problema NO se limita a la primera instalación como había pensado anteriormente, sino que ocurre cada vez que se inicia la aplicación. Aquí está mi solución que resuelve el problema por completo.
fuente
Sí, también tuve un retraso de unos segundos en el último iPhone 4s. No entres en pánico. Por alguna razón, solo ocurre la primera vez que la aplicación se carga desde Xcode en Debug. Cuando hice Release, no recibí el retraso. Solo olvídalo ...
fuente
Fastest, Smallest [-Os]
. Puedes cambiarloBuild Settings > Optimization Level
Este es un problema conocido.
Precargar el teclado parece prometedor. Marque Precargar el UIKeyboard.
Algún material de lectura adicional:
La pantalla inicial del teclado virtual del iPhone es lenta para un UITextField. ¿Se requiere este truco?
¿Teclado UITextField bloquea runloop mientras se carga?
http://www.iphonedevsdk.com/forum/iphone-sdk-development/12114-uitextfield-loooong-delay-when-first-tapped.html
fuente
Puede usar la solución de Vadoff en Swift agregando esto a didFinishLaunchingWithOptions:
Me está funcionando en iOS 8.
fuente
El código en bloque se agrega a la cola principal y se ejecuta de forma asincrónica. (no bloquee el hilo principal)
fuente
Mira esta respuesta . Sugieren UIResponder + KeyboardCache . Es simple y asombroso. Probado en iOS 7.
fuente
Un problema relacionado, en el que un UIViewController tardaría en presentarse, se resolvió utilizando la fuente del sistema en lugar de una fuente personalizada en el UITextField. ¿Quizás usar la fuente del sistema también podría funcionar para este problema?
fuente
Este error parece estar solucionado en iOS 9.2.1. Desde que actualicé mi dispositivo, ya no tengo un retraso entre tocar un campo de texto y que aparezca el teclado cuando mi dispositivo está conectado a mi computadora.
fuente
Esta respuesta seleccionada provoca el bloqueo de BAD_EXC en iOS 11: elimine de la aplicación para corregir
fuente
Puede agregar el código siguiente cuando se cargó la vista viewController, como viewDidAppear. No solo la aplicación: didFinishLaunchingWithOptions:
fuente