我需要我的用户输入一些像DF-DJSL这样的数据,所以我在代码中放入如下内容:
theTextField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;但不幸的是,首先输入的字母是大写字母,但在键入后立即输入字母,连字符将是小写,然后其余字母将返回大写,从而产生如下输出(除非用户在键入连字符后手动点击shift按钮):DF-dJSL
我该如何解决这个问题呢?
非常感谢
发布于 2010-09-04 22:14:54
您没有提到您正在使用哪个SDK,但是相对于3.0和更高版本,我看到了您想要的行为。
也就是说,当他们使用委托中的textFieldDidEndEditing方法完成编辑时,您始终可以将文本更改为大写:
- (void)textFieldDidEndEditing:(UITextField *)textField {
NSString *textToUpper = [textField.text uppercaseString];
[theTextField setText:textToUpper];
}或者,通过在文本字段更改时设置通知,您可以在键入文本时更改文本:
// setup the UITextField
{
theTextField.delegate = self;
theTextField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
[theTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
}由于与UISearchBar不同,UITextField不实现textDidChange.,因此您必须这样做也许是这样的吧?
- (void)textFieldDidChange:(UITextField *)textField {
NSRange range = [textField.text rangeOfString : @"-"];
if (range.location != NSNotFound) {
theTextField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
}
}https://stackoverflow.com/questions/2708775
复制相似问题