iOS UITextView实现字数的限制以及字数的累计

    xiaoxiao2021-12-14  72

    //输入最大字数 #define MAX_NUMBER  200 #pragma mark 在内容改变的时候调用,会记录UITextView内容的个数,当内容超过返回NO - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{     NSString *comcatstr = [textView.text stringByReplacingCharactersInRange:rangewithString:text];     NSInteger caninputlen =MAX_NUMBER - comcatstr.length;     if (caninputlen >=0){         return YES;     }else{         NSInteger len = text.length + caninputlen;         //防止当text.length + caninputlen < 0时,使得rg.length为一个非法最大正数出错         NSRange rg = {0,MAX(len,0)};         if (rg.length >0){             NSString *s = [text substringWithRange:rg];             [textView setText:[textView.text stringByReplacingCharactersInRange:rangewithString:s]];         }         return NO;     } } #pragma mark 当上面的方法内容返回YES调用,没懂内容增加或者改变时 self.number_label.text显示内容计数也会根据内容多少改变; -(void)textViewDidChange:(UITextView *)textView{//当输入且上面的代码返回YES时触发。或当选择键盘上的联想字时触发。     NSString  *nsTextContent = textView.text;     NSInteger existTextNum = nsTextContent.length;     if (existTextNum >MAX_NUMBER){         //截取到最大位置的字符         NSString *s = [nsTextContent substringToIndex:MAX_NUMBER];         [textView setText:s];     }     //不让显示负数     self.number_label.text = [NSStringstringWithFormat:@"%ld/%d",MAX(0,MAX_NUMBER - existTextNum),MAX_NUMBER]; } 效果图  
    转载请注明原文地址: https://ju.6miu.com/read-969745.html

    最新回复(0)