2010-02-16 16 views
45

Tengo una tabla muy simple y cuando tocuh una celda abre una nueva vista con un UITextfield. Todo lo que quiero es que el teclado se abra automáticamente, sin que el usuario tenga que tocar el campo UIText.¿Cómo abrir el teclado automáticamente en UITextField?

Todo se hace en Interface Builder, así que no estoy seguro de cómo lo hago. ¿Supongo que necesito establecer el foco en algún momento?

Gracias

Respuesta

118

para hacer que el teclado para mostrar inmediatamente que necesita para establecer el campo de texto como el primer nivel de respuesta utilizando la siguiente línea:

[textField becomeFirstResponder]; 

es posible que desee colocar esto en el viewDidAppear: método.

+25

recomiendo -viewDidAppear :, ya que esto genera animaciones. Generar animaciones en -viewWillAppear puede generar artefactos gráficos, ya que aún no está en la pantalla. Como casi con toda seguridad lo quiere cada vez que aparece en la pantalla, es probable que viewDidLoad sea redundante (sucede cada vez que se carga la vista desde el disco, algo impredecible, por lo que no es un buen lugar para los efectos visuales). –

+0

Muy buen consejo. – jessecurry

+0

¿Necesita importar el delegado '' 'UITextViewDelegate''' al hacer esto y luego conectarlo al delegado en IB? – Supertecnoboff

3

Swift 3 & 4:

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    textField.becomeFirstResponder() 
} 
+0

Y para evitar efectos secundarios extraños, también llamada 'super.viewDidAppear (animado)' – Piidro

+0

asegurarse de que está bien! –

Cuestiones relacionadas