UITextView限制输入字数 之二(弥补BUG,以及添加了扩展性)

首先说一下《 UITextView之一 》中的文章存在的bug:

1)在输入全屏文字的拼音,然后点击中文的时候会出现TextView自动跳动,还有就是在粘贴的过程中,TextView会出现大幅度的空白,自动跳转到上面,而自动实现了盲打的功效。(目前在系统上原有功能上的单独限制功能只发现了这个一个BUG)

说一下扩展:

1)对于此方法的用途,不用限制条件的使用上用UITextView可能就不会用到这些方法,然而在项目中为了统一,所以重写了TextView,来方便使用。

2)为了方便使用,添加了,限制输入的个数显示功能(默认是隐藏),用到的时候再显示出来,方便用户使用,拓展性强。

3)增加了placeHolder功能,再输入状态未改变的时候会有提示汉字,在输入文字后提示文字会消失,同样默认是隐藏,方面使用。

4)增加了一下一些委托方法,方便在使用中用到已经输入文字的个数,以及状态改变,而返回必要的值。

好了,开始正文:

首先是BUG:一句简单的话就可以解决在textViewDidChange:(UITextView*)textView中开头加上就可以。

textView.layoutManager.allowsNonContiguousLayout=NO;

这句话的意思是,是否开启非连续布局这个属性,这个是从网上找到了。在ios UITextView bug 输入文字跳动bug问题 (・ˍ・*) - 后来这个人死了... - 博客频道 - CSDN.NET这里,有空大家看看也是一笔概括了。

好了拓展:

拓展大体-截图

从图片中可以看出来,我重写了TextView的类,方便我的项目中用到TextVIew的地方都用到我的类。然而,其中is开头的其实是可以去掉的,但是寻思很久还是没删去的原因:我的初始化类的方式有两种1.代码生成 2.xib中调用,所以为了容错我加上的。

初始化方式1_代码布局-截图
初始化方式2_代码/xib-截图

初始化截图2下面的逻辑跟截图1一样所以为了省空间,我就不截了。首先说明一下为什么我截了这个if语句,不能不防啊,原因是:假如代码生成UITextView的时候用了1方法,之后调用2这个initTextView的方法,那么不做判断的话会完全盖掉。(本人掉里面过)

剩下的就是小改动上一篇文章中的代码了,以及增加这些拓展。


稍作改动1-截图

改动在倒数第二个return 就是return NO;中加一了句判断,为了更新已经输入的字数。


稍作改动2-截图

这个自己看吧,就是 在变动的时候,把提示信息隐藏,以及更新numberLabel的数据,以及要是有代理方法的话,返换给代理方法数据,还有就是当没有限制字数的时候,直接return当做系统的TextView使用。

增加-截图

这个大家可以忽略不记,这个是我们产品做的显示输入字数的时候做不足1个汉字字符显示按一个汉字字符显示, 也就是 我限制80字符,可以输入40个汉字,显示的时候是0/40,当我输入一个f的时候其实是半个汉字正确是0.5/40,但是 显示为1/40,当我再次输入f,现在文字为ff,这时候还是1/40。(本人感觉很是怪异,要么都添加,要么就显示字符,要么就是都按一显示像脉脉一样)。


更新输入汉字-截图

这个是-(int) JudgementString:(NSString*) string里面的,就是在return的时候都给theNowTextNum赋一下值,好更新数据。

以上就是我重写的TextView,当使用 重写类的委托 的时候,是不走重写类的这些方法的,会走委托者的委托方法。

总结:增加拓展性,以及修改了输入跳动的问题。


ios8以下 不要这样重写TextField控件,因为 ios7当中 textfield.delegate = self会陷入死循环,所以,ios8以上再用吧,本人 现在为了兼容ios7,用回了全部继承UIView的重写机制。


如果要判断字符长度的话,可以看一下我写的另一篇文章iOS 中 英 emoji 字符判断长度

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349

推荐阅读更多精彩内容