2013-09-07 9 views
5

Jestem pojawiały się UIAlertView z UITextField w nim. Chcę, aby pole tekstowe automatycznie dodawało wielkie litery do wszystkich słów. Robię to poprzez ustawienie właściwości pola tekstowego, ale nie mają one wpływu na środowisko wykonawcze. Oto mój kod:AutoCapitalization of TextField z 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]; 

to autocapitalization pracuje nad UITextField formie XIB ale to nie działa na UIAlertView używam iOS 6.

+0

Tak więc, jeśli nslog wartość titleField, żadne z tych słów nie są pisane wielką literą? – Jeremy

Odpowiedz

4

Jeśli Nie zmienia to Twoich wymagań, korzystanie z

wraz z
titleField.autocapitalizationType = UITextAutocapitalizationTypeWords; 

daje oczekiwany efekt.

-1

Można używać UITextField deleguje

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

Upewnij się, że w ustawieniach w Symulatorze systemu iOS i/lub na urządzeniu testowym włączona jest funkcja "Automatyczne wpisywanie wielkich liter".

Ustawienia> Ogólne> Klawiatura> Auto-Kapitalizacja

Jeśli wyłączona, to zignoruje właściwość autocapitalizationType na polu tekstowym twoi UIAlertView „s.