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

2016-11-03  本文已影响0人  jolin0529

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

-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;

}

上一篇下一篇

猜你喜欢

热点阅读