您可以设置UITextField的autocapitalizationType属性,以便所有输入都是大写。我发现在模拟器上工作正常(实际上是在点击模拟器的键盘,而不是Mac的键盘),而不是在设备上?一切都保持小写。
在UICatalog演示中,我添加了textFieldNormal方法:
textFieldNormal.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
也添加了一个委托,以显示UITextField的实际autocapitalizationType:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
NSLog( @"textField.autocapitalizationType=%d", textField.autocapitalizationType );
}
它将正确显示3(= UITextAutocapitalizationTypeAllCharacters),但您点击的任何内容仍为小写。我错过了什么?
答案 0 :(得分:20)
显然,这是设备常规设置问题:设置 - >一般 - >键盘 - >自动大写必须为ON才能将textField.autocapitalizationType设置为全部大写,否则显然会忽略设置属性。如果我打开它,一切都按预期工作。
答案 1 :(得分:0)
您可以尝试使用textfield委托:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (range.length == 0) { // not deleting , but adding a char
textField.text = [textField.text stringByAppendingString:[string uppercaseString]];
return NO;
}
return YES;
}
仅当您尝试在文本末尾插入符号时,此方法才有效。 如果你想玩中间的文字你可以玩
range.location
并且您还需要使用光标定位,因为它每次都会结束...
我希望这有助于某人。