最近在做一个实名认证的输入框,要求输入框里面要输入汉字,而且字数最多为10个,下面是本人做的源代码,希望和同行们一起交流一下
1:先给输入框添加输入事件
///输入框的输入事件
[self.realNameTextField addTarget:self action:@selector(realNameTextFieldEditing) forControlEvents:UIControlEventEditingChanged];
2:在输入事件里面判断输入汉字的个数
- (void)realNameTextFieldEditing{
NSString *toBeString = self.realNameTextField.text;
//获取输入模式的主要语言
NSString *lang = [[UIApplication sharedApplication]textInputMode].primaryLanguage;
//如果输入模式的主要语言是简体中文:包括简体拼音,健体五笔,简体手写
if([lang isEqualToString:@"zh-Hans"]){
UITextRange *selectedRange = [self.realNameTextField markedTextRange];
UITextPosition *position = [self.realNameTextField positionFromPosition:selectedRange.start offset:0];
if (!position){//非高亮(即:已经在输入框里面的汉语部分)
if (toBeString.length > 10) {
self.realNameTextField.text = [toBeString substringToIndex:10];
}
}
}else{//中文输入法以外
if (toBeString.length > 10) {
self.realNameTextField.text = [toBeString substringToIndex:10];
}
}
}
特别注意:你可以在代理里面判断,也可以在通知里面判断,也可以自己给输入框添加一个target来判断(上面就是).但是,判断输入框的输入字符的长度,你只能在一个方法里面判断,不要在代理里面判断了,在去添加target去判断输入汉字的字符长度