2012-06-19 15 views
8

Próbuję zmienić typ UIKeyboardType na klawiaturę alfabetu, gdy użytkownik wpisze spację, odzwierciedlając efekt wpisania apostrofu. Jednak mój kod nie zmieni wyglądu klawiatury, dopóki użytkownik nie odrzuci klawiatury, a następnie ją przywróci.Zmiana typu UIKeyboardType na podstawie wprowadzania tekstu

Edytuj: Aby wyjaśnić, typ klawiatury zaczyna się jako UIKeyboardTypeNumbersAndPunctuation i chcę zmienić na ASCIICable, ponieważ typowe dane wprowadzane przez użytkownika mają postać "# cups flour". Zdałem sobie sprawę, że klawiatura ASCIICapable ma tę wbudowaną funkcję, więc przedstawienie klawiatury z obsługą ASCII, ale pierwsze cyfry/znaki interpunkcyjne będą działać.

Oto mój kod:

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

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

return YES; 
} 

Odpowiedz

10

schować klawiaturę, a następnie stać się pierwszym responder ponownie. W moim kodzie stworzyłem IBOutlet dla textfield * tf. Zadziałało.

- (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

Działa doskonale, powinienem był o tym pomyśleć. Dzięki, Bruno. – MaxGabriel

Powiązane problemy