2013-09-07 48 views
5

Tôi đang xuất hiện một số UIAlertView với số UITextField trong đó. Tôi muốn trường văn bản tự động viết hoa tất cả các từ. Tôi đang làm điều này bằng cách thiết lập các thuộc tính của trường văn bản, nhưng chúng không có hiệu lực khi chạy. Dưới đây là mã của tôi:AutoCapitalization của TextField của 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]; 

autocapitalization này đang làm việc trên UITextField dạng XIB nhưng điều này không làm việc trên UIAlertView, tôi đang sử dụng iOS 6.

+0

Vì vậy, nếu bạn nslog giá trị của titleField, không có từ nào được viết hoa? – Jeremy

Trả lời

4

Nếu nó không thay đổi yêu cầu của bạn, sử dụng

titleField.autocorrectionType = UITextAutocorrectionTypeDefault; 

cùng với

titleField.autocapitalizationType = UITextAutocapitalizationTypeWords; 

mang đến cho bạn hiệu quả mong muốn.

-1

Bạn có thể sử dụng UITextField đại biểu

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

Đảm bảo "Tự động viết hoa" được bật trong Cài đặt trong Trình mô phỏng iOS và/hoặc trên thiết bị thử nghiệm của bạn.

Settings> General> Keyboard> Auto-Vốn

Nếu bị vô hiệu, nó sẽ bỏ qua các autocapitalizationType tài sản trên lĩnh vực văn bản UIAlertView của bạn.