2011-04-29 13 views
7

Hay un botón en la parte inferior derecha del teclado del iPad que es para ocultar el teclado.¿Cómo puedo interactuar con el "botón de ocultación del teclado del iPad" programáticamente?

enter image description here

¿Cómo puedo interactuar con él mediante programación? (obtenga el botón y luego envíele UIControlEventTouchUpInside).

¿Alguien sabe esto?

[Editar] En mi caso, el teclado se muestra en una vista modal.

+1

es esto un comportamiento diferente que el envío - (void) dismissFirstResponder a la vista que se está editando? –

+0

En mi caso, resignFirstResponder no funciona porque quiero ocultar el teclado del iPad en una vista modal (UIModalPresentationFormSheet) para mostrar UIDatePicker, por lo que me gustaría activar ese evento para ocultar el teclado si es posible –

+0

Si presenta UIDatePicker y lo convierte en el primer respondedor, el teclado debería desaparecer, ¿no? ¿Por qué no es eso lo suficientemente bueno? – ipmcc

Respuesta

1

¿Algo como esto? No recuerdo dónde encontré este código, pero lo usé para alternar el teclado en pantalla, ya que estaría oculto por defecto si se conectara un bluetooth.

- (void) toggleKeyboard(UIKeyboardImpl * keyImpl){ 

    if (UIKeyboardAutomaticIsOnScreen()) { 
     UIKeyboardOrderOutAutomatic(); 
    } else { 
    UIKeyboardOrderInAutomatic(); 
} 

Editar


He encontrado where Tengo este código de. Funciona bien, pero el problema es que debe importar el marco privado GraphicsServices, que muy probablemente hará que su aplicación se rechace desde la tienda de aplicaciones.

+0

Gracias, voy a intentar esto, espero que funcione :) –

+0

Did haces que esto funcione? – David

+0

Hola Johnny Grass, no funciona :( –

1

En general, enviaría el mensaje resignFirsResponder a la vista de entrada activa.

+0

Intenté esto, pero en mi caso, el teclado en una vista modal no surte efecto. –

2

Reemplazar disablesAutomaticKeyboardDismissal para devolver NO de la siguiente manera le permite cerrar el teclado cuando resignFirstResponder, incluso cuando su UITextView se encuentra en una vista modal. Usted debe poner este código en el controlador de vista, desde el que se inicia el teclado:

- (BOOL)disablesAutomaticKeyboardDismissal { 
    return NO; 
} 

Fuente: https://stackoverflow.com/a/6268520

+0

Bienvenido a Stack Overflow. Aunque esto teóricamente puede responder a la pregunta, [lo haría ser preferible] (http://meta.stackexchange.com/q/8259) para incluir las partes esenciales de la respuesta aquí y proporcionar el enlace para referencia. – jjnguy

+0

¡Gracias! ¡Esto ayudó! –

Cuestiones relacionadas