2013-07-26 39 views
6

您可以設置UITextField的autocapitalizationType屬性,以便所有輸入均爲大寫。我發現在模擬器上工作正常(當實際點擊模擬器的鍵盤時,不是Mac鍵盤),但不是在設備上?一切都保持小寫。UITextField autocapitalizationType UITextAutocapitalizationTypeAllCharacters在設備上不起作用

在UICatalog演示我加入到textFieldNormal方法:

textFieldNormal.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters; 

添加委託太,以顯示的UITextField實際autocapitalizationType:

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

它將正確顯示3(= UITextAutocapitalizationTypeAllCharacters),但是你點擊的任何東西都是小寫。我錯過了什麼?

回答

19

顯然這是一個設備常規設置問題:顯然,設置 - >常規 - >鍵盤 - >自動大寫必須爲ON才能將textField.autocapitalizationType設置爲全部大寫,否則設置該屬性將被忽略。如果我按照預期切換它的一切功能。

0

你可以嘗試這樣的事情的文本字段代表:

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

如果試圖在文本的末尾插入一個符號,它才起作用。 如果您想在中間文玩,你可以用

range.location

玩,你也將需要用光標定位到發揮它將於年底每走時間...

我希望這可以幫助別人。

相關問題