项目需求
中英混合输入限制字数
需要了解的
ios状态下,UTF8:数字1个,英文1个,中文3个,emoji4个 Unicode:数字2个,英文2个,中文2个,emoji4个
textField代理方法的了解
|
|
如图:
直接使用代理方法限制会出现的问题
问题一 超过限制字数后,删除键失效,无法修改
解决 修改代码
|
|
问题二 中文输入法的问题,当最后一个字符以中文形式输入的时候,系统会在键盘上方提供系列的联想词,这样的连续选字输入会突破我们的字符限制(模拟器不会出现问题,但是真机会出现)
问题三 中文输入法下,想输入四个汉字,会出现问题,如图所示,代理方法没有响应到拼音到汉字的过程
当输入张(zhang)的时候,用户输入zhang在为完成之前,拼音”zhan”已经出现在输入框中(textfield)中,并且作为了输入的内容,但是我们想要的不是”zhan”,这样由于我们限制了4个导致”g”无法输入,从而”张”不能输出
解决方案 给textfield添加事件监听或者通知
UITextField有一个属性maskedTextRange用于标识中文拼音输入字母时的情形,所以解决思路:
1.先检测UITextField中的maskedTextRange是否是空,不为空的时候不限制
2.超过限制截取