- (void)textChange:(UITextField*)tf {
NSString*toBeString = tf.text;
NSString *lang = [tf.textInputMode primaryLanguage];
NSInteger maxNum =50;
if([lang isEqualToString:@"zh-Hans"]) {
// 简体中文输入
//获取高亮部分
UITextRange*selectedRange = [tf markedTextRange];
UITextPosition*position = [tf positionFromPosition:selectedRange.startoffset:0];
// 没有高亮选择的字,则对已输入的文字进行字数统计和限制
if(!position) {
if(toBeString.length> maxNum) {
tf.text= [toBeString substringToIndex:maxNum];
}
}
}else{
// 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
if(toBeString.length> maxNum) {
NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:maxNum];
if(rangeIndex.length==1) {
tf.text= [toBeString substringToIndex:maxNum];
}else{
NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, maxNum)];
tf.text= [toBeString substringWithRange:rangeRange];
}
}
}
}
网友评论