12

出于某种原因,我的 UITextFields 都不会自动大写。我已经在 InterfaceBuilder 以及以编程方式设置了属性,如下所示。

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"search_cell"];
UITextField *tf = [[UITextField alloc] initWithFrame:CGRectMake(12, 10, 320, 32)];
tf.autocapitalizationType = UITextAutocapitalizationTypeWords;
tf.returnKeyType = UIReturnKeySearch;
tf.font = [UIFont boldSystemFontOfSize:20.0];
tf.delegate = self;
[cell addSubview:tf];
[tf becomeFirstResponder];

无论如何,我是否可以设置一些标志来禁用整个应用程序的自动大写功能而没有意识到?

谢谢

4

3 回答 3

26

您是否检查了 iPhone 的设置 -> 常规 -> 键盘 -> 自动大写?

于 2009-07-14T01:45:51.940 回答
3

我发现如果你关闭自动更正,那么自动大写也不起作用。在我看来,他们应该独立运作。在名称字段中,人们希望将每个单词都大写,但不要用字典预测的任何内容自动替换名称。

于 2011-05-02T02:05:25.950 回答
0

无论设置如何,我都无法让它工作。所以我只是把它放在文本字段的委托中:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    // Handle the backspace.
    if ([string isEqualToString:@""]) return YES;

    // Otherwise convert to uppercase and change the textfield manually.
    textField.text = [[textField.text stringByAppendingString:string] uppercaseString];
    return NO;
}
于 2013-07-27T21:44:59.753 回答