项目中经常会遇到限制UITextField中输入字符数的需求,并且会根据输入的英文还是中文给出不同的限定数,本文记录其解决方案。
对于全英文的输入限定很简单,但是输入中文时,当输入拼音但未选择中文时,此时输入文本框的文字会包括输入的拼音,是选中的状态,比如这样:
上面的情况如果打印UITextField的text属性会输出:中国di zhi
。由于拼音是选中状态的,那么可以根据
UITextInput
协议判断UITextField中是否有选中状态的字符,从而决定是否对输入字符进行截断处理。