小结一下,直接附上代码块 ---- (这里实现的是限制300字)😀
static NSInteger num = 300;//限制最多输入字数设置
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if ([text isEqualToString:@"\n"])
{
[textView resignFirstResponder];
return NO;
}
return YES;
}
- (void)textViewDidChange:(UITextView *)textView{
NSString *lang = [[[UITextInputMode activeInputModes] firstObject] primaryLanguage];//当前的输入模式
if ([lang isEqualToString:@"zh-Hans"]){//判断是汉字
UITextRange *range = [textView markedTextRange];
UITextPosition *start = range.start;
UITextPosition*end = range.end;
NSInteger selectLength = [textView offsetFromPosition:start toPosition:end];
NSInteger contentLength = textView.text.length - selectLength;
if (contentLength > num){
textView.text = [textView.text substringToIndex:num];
NSLog(@"字数达到上限");
}
if (contentLength < num){
_numberLabel.text = [NSString stringWithFormat:@"%ld字", num - contentLength];//剩余可输入字体数
}else{
_numberLabel.text = [NSString stringWithFormat:@"%ld字", num - contentLength];//剩余可输入字体数
}
}else{
if (textView.text.length > num){
textView.text = [textView.text substringToIndex:num];
NSLog(@"字数达到上限");
}
_numberLabel.text = [NSString stringWithFormat:@"%ld字", num-textView.text.length];//剩余可输入字体数
}
}
网友评论