iPhone SDK: ¿Cómo determinar el tipo de teclado dentro de una UIKeyboardDidShowNotification?

Necesito saber el tipo de teclado actual. Estaba configurando una variable de instancia en

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

Sin embargo, las pruebas han demostrado que esto no siempre es confiable debido a la naturaleza asincrónica de las notificaciones.

Lo que me pregunto es si alguien puede decirme cómo determinar el tipo de teclado actual dentro de una notificación.

- (void)keyboardDidShow:(NSNotification *) {
    // Need way to determine keyboard type here
  }

Gracias.

preguntado el 08 de enero de 11 a las 17:01

1 Respuestas

Si está preguntando sobre el idioma del teclado, eso solo se puede hacer en iOS4.2 y superior usando Clase UITextInputMode método: +[UITextInputMode currentInputMode];

Si desea el tamaño (porque dependiendo del idioma, el tamaño puede cambiar) que es fácil, obtenga el tamaño del objeto para la clave UIKeyboardBoundsUserInfoKey

- (void)keyboardWasShown:(NSNotification*)aNotification{
NSDictionary* info = [aNotification userInfo];
NSValue* aValue = [info UIKeyboardFrameEndUserInfoKey];
CGSize keyboardSize = [aValue CGRectValue].size;
//I just got the size! ... do something with it
}

Respondido el 08 de enero de 11 a las 21:01

Necesito saber si UIKeyboardTypeNumberPad es verdadero o no. ¿Sabe si esa información está disponible en notification.userInfo? No pude decirlo por los documentos y recibí una advertencia en la compilación. - Desarrollador de iPhone

¿Ha probado cuál es el resultado + [UITextInputMode currentInputMode]; cuando se muestra el teclado NumberPad? - nacho4d

O pruebe esta notificación: UITextInputCurrentInputModeDidChangeNotification - nacho4d

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.