2013-07-26 20 views
6

Bir UITextField öğesinin autocapitalizationType özelliğini ayarlayabilirsiniz, böylece tüm girdiler büyük harftir. Simülatörde (Mac'in klavyesi değil, simülatörün tuş takımına dokunduğunda), ancak cihazda işe yaramadığını buluyorum. Her şey küçük kalır. UITextField gerçek autocapitalizationType görüntülemek için, bir temsilci çokUITextField autocapitalizationType UITextAutocapitalizationTypeAllCharacters aygıtta çalışmıyor

textFieldNormal.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters; 

Ekleme: I textFieldNormal yöntemine ilave UICatalog demo

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    NSLog(@"textField.autocapitalizationType=%d", textField.autocapitalizationType); 
} 

Düzgün (3 gösterecektir = UITextAutocapitalizationTypeAllCharacters), ancak dokunduğunuz her şey küçük kalır. Neyi kaçırıyorum?

cevap

19

Görünüşe göre bu bir aygıt genel ayarları sorunudur: Ayarlar -> Genel -> Klavye -> Otomatik Büyük Harf, textField.autocapitalizationType öğesinin ayarını tüm büyük harflere atamak için AÇIK olmalıdır, aksi halde özellik ayarı göz ardı edilir. Eğer onu değiştirirsem her şey beklendiği gibi çalışır. Metnin sonunda bir simge ekleme çalışırsanız

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    if (range.length == 0) { // not deleting , but adding a char   
     textField.text = [textField.text stringByAppendingString:[string uppercaseString]]; 
     return NO; 
    } 

    return YES; 
} 

Bu yalnızca çalışır:

0

Bu textfield temsilci gibi bir şey deneyebilirsiniz. Eğer

range.location

ile oynayabilir ve her sonunda gidecek kadar da imleç konumlandırma ile oynamak gerekecek ortada metinle oynamak istiyorum Should zaman ...

Umarım bu birilerine yardımcı olur.