UIAlertView TextField的AutoCapitalization

时间:2013-09-07 08:55:01

标签: iphone ios objective-c uialertview

我正在弹出UIAlertView,其中包含UITextField。我希望文本字段自动大写所有单词。我这样做是通过设置文本字段的属性来实现的,但它们在运行时没有任何影响。这是我的代码:

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];

此自动资本化正在UITextField表单XIB上运行,但这不适用于UIAlertView,我使用的是iOS 6。

3 个答案:

答案 0 :(得分:4)

如果不改变您的要求,请使用

titleField.autocorrectionType = UITextAutocorrectionTypeDefault;

一起
titleField.autocapitalizationType = UITextAutocapitalizationTypeWords;

为您提供所需的效果。

答案 1 :(得分:0)

确保"自动资本化"在iOS模拟器和/或测试设备的“设置”中启用。

设置>一般>键盘>自动大写

如果停用,则会忽略autocapitalizationType文字字段中的UIAlertView媒体资源。

答案 2 :(得分:-1)

您可以使用uitextfield委托

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