2013-07-26 9 views
6

È possibile impostare la proprietà autocapitalizationType di un UITextField in modo che tutti gli input siano in maiuscolo. Trovo che funzioni correttamente sul simulatore (quando si tocca effettivamente la tastiera del simulatore, non la tastiera del Mac), ma non sul dispositivo? Tutto rimane in minuscolo.UITextField autocapitalizationType UITextAutocapitalizationTypeAllCaratteri che non funzionano sul dispositivo

Nel UICatalog demo ho aggiunto al metodo textFieldNormal:

textFieldNormal.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters; 

Aggiunto un delegato troppo, per visualizzare l'autocapitalizationType effettivo per l'UITextField:

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

Sarà visualizzare correttamente 3 (= UITextAutocapitalizationTypeAllCharacters), ma tutto ciò che si tocca rimane in minuscolo. Cosa mi manca?

risposta

19

Apparentemente questo è un problema di impostazioni generali del dispositivo: Impostazioni -> Generale -> Tastiera -> Maiuscole automatiche devono essere ON per rispettare le impostazioni di textField.autocapitalizationType per tutti in maiuscolo, altrimenti l'impostazione della proprietà viene ignorata, apparentemente. Se lo accendo, tutto funziona come previsto.

0

si potrebbe provare qualcosa di simile il campo di testo delegato:

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

Questo funziona solo se si tenta di inserire un simbolo alla fine del testo. Se volete giocare con il testo in mezzo si potrebbe giocare con

range.location

e inoltre si avrà bisogno di giocare con il posizionamento del cursore in fondo alla fine di ogni tempo ...

Spero che questo aiuti qualcuno.

Problemi correlati