flutter TextField限制中文,ios自带中文输入法变英文输入问题解决

由于业务需求,要限制TextField只能输入中文,但是测试在iOS测试机发现自带中文输入法会变英文输入问题,安卓没有问题,并且只有iOS自带输入法有问题,搜狗等输入法没问题。我们目前使用flutter2.5.3版本,高版本应该不存在这个问题。

TextField限制中文代码片段:

复制代码
TextField(
  inputFormatters: [
    FilteringTextInputFormatter.allow(RegExp('[a-zA-Z]|[\u4e00-\u9fa5]|[0-9]')),
  ],
)

解决方案,自定义过滤器:

复制代码
//自定义过滤器
class CustomizedTextInputFormatter extends TextInputFormatter {
  final Pattern filterPattern;

  CustomizedTextInputFormatter({this.filterPattern})
      : assert(filterPattern != null);

  @override
  TextEditingValue formatEditUpdate(
    TextEditingValue oldValue,
    TextEditingValue newValue,
  ) {
    if (newValue.isComposingRangeValid) return newValue;
    return FilteringTextInputFormatter.allow(filterPattern)
        .formatEditUpdate(oldValue, newValue);
  }
}

TextField(
  inputFormatters: [
    //使用自定义过滤器,限制中文输入
    CustomizedTextInputFormatter(
      filterPattern: RegExp("[a-zA-Z]|[\u4e00-\u9fa5]|[0-9]"),
    ),
  ],
),
相关推荐
2501_915106321 小时前
iOS App 测试方法,通过 Xcode、Instruments、Safari Inspector、克魔(KeyMob)等工具
android·ios·小程序·uni-app·iphone·xcode·safari
游戏开发爱好者81 小时前
对 iOS IPA 文件进行深度混淆的一种实现路径
android·ios·小程序·https·uni-app·iphone·webview
坚果派·白晓明1 小时前
Windows 11 OpenHarmony 版 Flutter 开发环境搭建完整指南
windows·flutter·开源鸿蒙·鸿蒙跨平台应用
JZXStudio1 小时前
Swift 6 + MLX + SwiftUI:三位一体本地AI架构蓝图
前端·ios
音浪豆豆_Rachel1 小时前
Flutter跨平台通信的实战演练:复杂数据结构与单元测试在鸿蒙生态中的完美实现
数据结构·flutter·单元测试·harmonyos
TheNextByte12 小时前
如何将视频从 iPhone 发送到 Redmi
ios·iphone
音浪豆豆_Rachel2 小时前
Flutter跨平台通信的类型安全艺术:枚举与复杂对象在鸿蒙生态中的映射与序列化
flutter·harmonyos
昼-枕2 小时前
【鸿蒙Flutter入门】10分钟快速上手开发天气应用
flutter·华为·harmonyos
kirk_wang2 小时前
Flutter `shared_preferences` 三方库在 OpenHarmony 平台的适配实践
flutter·移动开发·跨平台·arkts·鸿蒙
2501_916007472 小时前
Xcode 在 iOS 上架中的定位,多工具组合
android·macos·ios·小程序·uni-app·iphone·xcode