2010-11-26 22 views
6

que tienen una vista que soporta copiar y muestra el menú de edición usando el siguiente código:becomeFirstResponder sin ocultar el teclado

if ([self becomeFirstResponder]) { 
    // bring up edit menu. 
    UIMenuController *theMenu = [UIMenuController sharedMenuController]; 
    [theMenu setTargetRect:[self _textRect] inView:self]; 
    [theMenu setMenuVisible:YES animated:YES]; 
} 

El problema es que cuando se llama a becomeFirstResponder, oculto de la get teclado. Un buen ejemplo del comportamiento correcto está en la aplicación de SMS. Toca dos veces un mensaje mientras el cuadro de respuesta está visible y el cuadro de respuesta pierde el foco, pero el teclado permanece en su lugar. Además, cuando se deselecciona la burbuja, el cuadro de respuesta recupera el foco.

Respuesta

5

Desafortunadamente, Apple puede hacer muchas cosas que no están disponibles para aplicaciones de terceros.

Creo que lo que desea es posible en iOS 3.2+ si hace que la vista que se convierta en la primera respuesta del respondedor acepte el teclado. Para ello, haga que su clase de vista adopte el UIKeyInput protocol:

Una subclase de UIResponder puede adoptar este protocolo para implementar la entrada de texto simple. Cuando las instancias de esta subclase son la primera respuesta, se muestra el teclado del sistema.

El protocolo consta de 3 métodos necesarios que debe implementar. En su caso, probablemente aplique las entradas que recibe en estos métodos a su campo de texto y lo convierta nuevamente en el primer respondedor. No lo he intentado pero debería funcionar.

+0

He intentado esto. He implementado los 3 métodos y todavía tiene el cursor parpadeante en el campo de texto. –

+0

Esta respuesta es incorrecta. La solución no funciona. No sé por qué tiene votos. – RaffAl

+0

Gracias! la implementación del protocolo UIKeyInput hizo que el teclado se quedara. –

Cuestiones relacionadas