ios-UITextView输入时,字数限制的倒数及对超出的字数进行截取并弹出提示框

时间:2023-01-09 10:45:19

ios-UITextView输入时,字数限制的倒数及对超出的字数进行截取并弹出提示框

效果图如上,主要是右上角的Label显示框,创建完各控件后,可以在代理方法里贴上下面代码:

-(void)textViewDidChange:(UITextView *)obj

{

UITextView *textField = (UITextView *)obj;

NSString *toBeString = textField.text;

NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式

if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写

UITextRange *selectedRange = [textField markedTextRange];

//获取高亮部分

UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];

// 没有高亮选择的字,则对已输入的文字进行字数统计和限制

if (!position) {

if (toBeString.length > 200) {

[contentTextView resignFirstResponder];

SKTipbox *tipboxView = [[SKTipbox alloc] init];

[tipboxView show:self.view withTips:@"请不要超过200字"];

textField.text = [toBeString substringToIndex:200];

}

}

// 有高亮选择的字符串,则暂不对文字进行统计和限制

else{

}

}

// 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况

else{

if (toBeString.length > 200)

{

[contentTextView resignFirstResponder];

SKTipbox *tipboxView = [[SKTipbox alloc] init];

[tipboxView show:self.view withTips:@"请不要超过200字"];

textField.text = [toBeString substringToIndex:200];

}

}

if (toBeString.length > 200) {

promptLab.text = [NSString stringWithFormat:@"还能输入0个字"];

}else

{

promptLab.text = [NSString stringWithFormat:@"还能输入%d个字",200-toBeString.length];

}

}

ios-UITextView输入时,字数限制的倒数及对超出的字数进行截取并弹出提示框