Bueno, sé que esta pregunta ya ha sido respondida muchas veces. Lleva tiempo mostrar un teclado después de que se llama al método viewDidAppear
.
La razón por la cual viewDidAppear
es el último método que se llama en vista el ciclo de vida después de que desaparece, por supuesto. Además, también se debe crear el teclado, si no se pudo encontrar en la memoria. Entonces, la primera vez toma más tiempo como esperaba. Estas razones causan una pequeña demora que me estaba molestando.
Siempre llamo al método en el método viewWillAppear
para disminuir el tiempo de visualización del teclado, pero necesitaba mostrar el teclado justo después del método viewDidAppear
para no perder la animación suave.
Por lo tanto, este pequeño truco que surgió funciona como un encanto. Lo probé tanto en simulador como en dispositivos. Si no funciona correctamente en su caso, no tiene otra opción, pero haga que funcione como se explica en la respuesta aceptada.
Bueno, lo que estoy haciendo es crear un UITextField
(puede usar cualquier vista que interactúe con el teclado) y llamar a los métodos de respuesta inmediata para poner mi teclado en la memoria, si aún no se ha creado. Por lo tanto, la segunda vez, obtendrá teclado en la memoria caché, lo que acelerará el tiempo de visualización del teclado. Bueno, puse este código en el controlador de vista anterior que voy a mostrar el teclado después.
Aquí está el código:
- (void)viewDidAppear:(BOOL)animated
{
UITextField *textField = [[UITextField alloc]init];
[self.view addSubview:textField];
[textField becomeFirstResponder];
[textField resignFirstResponder];
[textField removeFromSuperview];
}
Muchas gracias, muy apreciada :-) Me siento estúpido, porque eso es lo que he intentado al principio, pero se me ocurrió que he perdido en un método personalizado en el que no estaba 't llamado ... * suspiro * ty – pkluz
Agradable respuesta agregar +1 – Nikhil
Pero no muestra el teclado inmediatamente en la vista. – Szu