5

我弹出一个里面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。

4

3 回答 3

4

如果它没有改变您的要求,请使用

titleField.autocorrectionType = UITextAutocorrectionTypeDefault;

随着

titleField.autocapitalizationType = UITextAutocapitalizationTypeWords;

给你想要的效果。

于 2013-09-07T09:21:19.257 回答
0

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

设置 > 通用 > 键盘 > 自动大写

如果禁用,它将忽略autocapitalizationTypeUIAlertView的文本字段上的属性。

于 2014-04-29T18:19:32.130 回答
-1

您可以使用 uitextfield 委托

- (void)textFieldDidEndEditing:(UITextField *)textField{
    NSLog(@"textFieldDidEndEditing");
    textField.text=[textField.text uppercase];
}
于 2013-09-07T09:17:19.410 回答