TextView限制字数的设置

看到各种大神的帖子,小弟我一时手痒,正好前不久因为项目的需要,就弄了这么一个玩意,希望能帮助大家。

刚开始做这个的时候,发现一个问题,那就是我们在打字的时候,那些还在高亮的字母也会被算进进去,这就会造成我们一些困扰,情况如下。

针对这样的问题,小弟我在textView的代理方法中加了这么几句代码就解决问题了,下面话不多说,直接上代码,就是下面黑体加粗的部分,这样弄了之后。

- (void)textViewDidChange:(UITextView *)textView

{

if (textView.text.length>0) {

placeLabel.hidden = YES;

UITextRange *selectedRange = [textView markedTextRange];

//获取高亮部分

UITextPosition *pos = [textView positionFromPosition:selectedRange.start offset:0];

//如果在变化中是高亮部分在变,就不要计算字符了

if (selectedRange && pos) {

return;

}

NSUInteger count = textView.text.length

if (count>=200) {

wordNum.text = @"200/200";

textView.text = [textView.text substringToIndex:200];

ALERTSHOW_IN_CENTER(@"字数超过200上限了");

}else{

wordNum.text = [NSString stringWithFormat:@"%ld/200", (unsigned long)count];

}

}else{

placeLabel.hidden = NO;

wordNum.text = @"0/200";

}

}

效果如下图:


最后说几句,虽然这个功能很简单,但是却是很常见的一个问题,小弟第一次写这个,暂时就弄个简单的试试水,望大家多多谅解。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容