问题
当使用以下FilteringTextInputFormatter进行输入内容限制时候,会在IOS手机上出现一个问题。
TextField(
//省略
inputFormatters: <TextInputFormatter>[
LengthLimitingTextInputFormatter(15),
//只允许输入中文英文数字以及-_字符
FilteringTextInputFormatter.allow(RegExp("[-_\u4E00-\u9FA5a-zA-Z0-9]")),
],
//省略
),
这个问题的表现是连续输入中文时候,打字的内容会被截断。
具体效果如下面gif演示
假如输入“摸鱼”,开始打字,mo是正常的,当想打yu时候,已经输入的mo会被顶掉。
单个字可以输入,多个字连续输入就会有问题。
解决方案
这个问题根本原因是因为,IOS默认输入法在输入汉字时候,每个拼音之间会分词
如果输入“摸鱼”,在使用拼音打字时候,输入框会显示“mo yu”
正是中间的这个空格,由于被FilteringTextInputFormatter过滤掉了,导致了问题
将这个字符加上即可