2013-09-07 8 views
5

Ich bin ein UIAlertView mit einem UITextField drin. Ich möchte, dass das Textfeld alle Wörter automatisch groß schreibt. Ich mache das, indem ich die Eigenschaften des Textfelds festlege, aber zur Laufzeit haben sie keine Wirkung. Hier ist mein Code:AutoCapitalization von TextField von UIAlertView

UIAlertView* alert = [[UIAlertView alloc] initWithTitle: title 
               message: message 
               delegate: self 
             cancelButtonTitle: @"Cancel" 
             otherButtonTitles: @"Create", nil]; 
alert.alertViewStyle = UIAlertViewStylePlainTextInput; 
UITextField* titleField = [alert textFieldAtIndex: 0]; 
titleField.autocapitalizationType = UITextAutocapitalizationTypeWords; 
[alert show]; 

diese autocapitalization arbeitet an UITextField Form XIB aber das funktioniert nicht auf UIAlertView, ich bin mit iOS 6.

+0

Also, wenn Sie den Wert von titField nslog, kein Wort wird groß geschrieben? – Jeremy

Antwort

4

Wenn Es ändert nicht Ihre Anforderungen, mit

titleField.autocorrectionType = UITextAutocorrectionTypeDefault; 

zusammen mit

titleField.autocapitalizationType = UITextAutocapitalizationTypeWords; 

gibt Ihnen den gewünschten Effekt.

-1

Sie können Delegaten verwenden UITextField

- (void)textFieldDidEndEditing:(UITextField *)textField{ 
    NSLog(@"textFieldDidEndEditing"); 
    textField.text=[textField.text uppercase]; 
} 
0

Vergewissern Sie sich, dass "Auto-Großschreibung" unter Einstellungen im iOS Simulator und/oder auf Ihrem Testgerät aktiviert ist.

Einstellungen> Allgemein> Tastatur> Auto-Kapitalisierung

Wenn deaktiviert, wird das autocapitalizationType Eigentum auf Ihrem UIAlertView ‚s Textfeld ignorieren.