限制UITextField只能输入大写字母和不能输入空格
最近写项目遇到了限制UITextField的输入内容,不能输入小写,如果输入小写,就自动转换成大写;不能输入空格,点击空格键输入无效。网上查了一些方法,现在分享一下我觉得最好用的方法。这是参考的文章。
废话不多说,直接上代码,很简单,一看就懂:
#pragma mark - -- UITextField 代理方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (string.length == 0) {
return YES;
}
char commitChar = [string characterAtIndex:0];
if (commitChar > 96 && commitChar < 123) {
//小写变成大写
NSString * uppercaseString = string.uppercaseString;
NSString * str1 = [textField.text substringToIndex:range.location];
NSString * str2 = [textField.text substringFromIndex:range.location];
textField.text = [NSString stringWithFormat:@"%@%@%@",str1,uppercaseString,str2];
return NO;
}
if (commitChar == 32) {
//输入的空格替换为 @""
NSString * str1 = [textField.text substringToIndex:range.location];
NSString * str2 = [textField.text substringFromIndex:range.location];
textField.text = [NSString stringWithFormat:@"%@%@%@",str1,@"",str2];
return NO;
}
return YES;
}
就这么简单,回调代理,会自动根据字符在ASCII码中的索引进行处理。如果有更好的方法,欢迎大家多赐教。