2013-09-07 10 views
5

Sto spuntando uno UIAlertView con un UITextField in esso. Voglio che il campo di testo si auto-capitalizzi tutte le parole. Lo sto facendo impostando le proprietà del campo di testo, ma non hanno alcun effetto in fase di runtime. Ecco il mio codice:AutoCapitalization di TextField di 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]; 

questo autocapitalization sta lavorando su UITextField forma XIB ma questo non sta lavorando su UIAlertView, io sto usando iOS 6.

+0

Quindi, se nslog il valore di titleField, nessuna delle parole è in maiuscolo? – Jeremy

risposta

4

Se non cambia le tue esigenze, utilizzando

titleField.autocorrectionType = UITextAutocorrectionTypeDefault; 

insieme a

titleField.autocapitalizationType = UITextAutocapitalizationTypeWords; 

fornisce l'effetto desiderato.

-1

È possibile utilizzare UITextField delegati

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

Assicurarsi che "Auto-Capitalization" sia abilitato in Impostazioni in iOS Simulator e/o sul dispositivo di test.

Impostazioni> Generali> Tastiera> Auto-capitalizzazione

Se disabilitato, ignorerà la proprietà autocapitalizationType sul campo di testo 's tuoi UIAlertView.