2012-06-19 10 views
8

Estoy tratando de cambiar el UIKeyboardType al teclado del alfabeto cuando el usuario escribe un espacio, reflejando el efecto de escribir un apóstrofo. Sin embargo, mi código no cambiará la apariencia del teclado hasta que el usuario cierre el teclado y luego lo devuelva.Cambiar UIKeyboardType basado en la entrada de texto

Editar: Para aclarar, el tipo de teclado comienza como UIKeyboardTypeNumbersAndPunctuation y quiero cambiar a ASCIICapable, porque la entrada del usuario típico es en forma de "# tazas de harina". Me di cuenta de que el teclado ASCIIC tiene esta funcionalidad incorporada, por lo que presentar el teclado con capacidad ASCII pero mostrar los números/puntuación funcionaría primero.

Aquí está mi código:

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 

    if ([string isEqualToString:@" "]) { 
     textField.keyboardType = UIKeyboardTypeASCIICapable; 
    } 

return YES; 
} 

Respuesta

10

ocultar el teclado y luego se convierten en el primer nivel de respuesta de nuevo. En mi código, creé un IBOutlet para el campo de texto * tf. Funcionó.

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 

    if ([string isEqualToString:@" "]) { 
     self.tf.keyboardType = UIKeyboardTypeNumberPad; 
     [textField resignFirstResponder]; 
     [self.tf becomeFirstResponder]; 
    } 

    return YES; 
} 
+0

Funcionó a la perfección, debería haber pensado en esto. Gracias Bruno. – MaxGabriel

Cuestiones relacionadas