美文网首页
限制textFiled的长度输入(一个汉字相当于2字符)

限制textFiled的长度输入(一个汉字相当于2字符)

作者: jolin0529 | 来源:发表于2016-11-03 14:25 被阅读0次

在做限制文本输入长度的时候遇到很多坑,下面就是很好的解决了文本输入长度限制的方法:

-textFiled的字数限制,一个汉字相当于2字符:

[_textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

- (void)textFieldDidChange:(UITextField *)textField

{

NSInteger inter = 5;//限制文本输入不超过5个汉字

NSNumber *number;

if ([self IsChinese:textField.text]==0) {//判断输了多少汉字

NSInteger number1 = inter*2;

number = [NSNumber numberWithInteger:number1] ;

}else{

if ([self IsChinese:textField.text] <= inter) {

NSInteger nuber2 = inter*2 - [BJSounds IsChinese:textField.text]*2 + [BJSounds IsChinese:textField.text];

number =  [NSNumber numberWithInteger:nuber2];

}else{

number = [NSNumber numberWithInteger:inter];

}

}

if (number && textField.text.length > [number integerValue] && textField.markedTextRange == nil) {

textField.text = [textField.text substringWithRange: NSMakeRange(0, [number integerValue])];

}

}

- (NSInteger)IsChinese:(NSString *)str {

int j = 0;

for(int i=0; i< [str length];i++){

int a = [str characterAtIndex:i];

if( a > 0x4e00 && a < 0x9fff)

{

j++;

}

}

return j;

}

相关文章

网友评论

      本文标题:限制textFiled的长度输入(一个汉字相当于2字符)

      本文链接:https://www.haomeiwen.com/subject/nbibuttx.html