2012-06-19 20 views
8

Kullanıcı bir boşluk yazdığında, bir kesme işareti yazmanın etkisini yansıtarak UIKeyboardType'ı alfabe klavyesine değiştirmeye çalışıyorum. Bununla birlikte, kullanıcı klavyeyi reddedene ve daha sonra tekrar geri getirene kadar kodum klavye görünümünü değiştirmeyecek.UIKeyboardType metin girişine bağlı olarak değiştirin

Düzenleme: Açıklamak gerekirse, klavye türü UIKeyboardTypeNumbersAndPunctuation olarak başlıyor ve ASCIICapable olarak değiştirmek istiyorum, çünkü tipik kullanıcı girdisi "# cup flour" biçimindedir. ASCIICapable klavyenin yerleşik olarak bu işlevselliğe sahip olduğunu fark ettim, bu yüzden ASCII özellikli klavyeyi sunmak ancak önce sayıları/noktalama işaretlerini göstermek işe yarayacaktı.

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

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

return YES; 
} 

cevap

10

Klavyeyi kapatmak ve daha sonra tekrar ilk savunan hale gelir:

İşte benim kod. Kodumda, textfield * tf için bir IBOutlet oluşturdum. İşe yaradı.

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

Kusursuz çalıştım, bunu düşünmeliydim. Teşekkürler Bruno. – MaxGabriel

İlgili konular