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]"),
    ),
  ],
),
相关推荐
LinXunFeng1 分钟前
Flutter - Melos Pub workspaces 实践
前端·flutter·架构
Digitally9 小时前
从iPhone转移到itel手机的联系人转移指南
ios·智能手机·iphone
Digitally9 小时前
清除 iPhone 数据以便出售:永久删除您的数据
ios·iphone
勤劳打代码13 小时前
妙笔生花 —— Flutter 实现飞入动画
前端·flutter·设计模式
1024小神16 小时前
关于在ios系统中签名并安装ipa文件的五种方法,PakePlus打包的ipa文件可以看看
macos·ios·cocoa
我想吃辣条16 小时前
flutter mapbox_maps_flutter 应用不支持 16 KB
flutter
QWQ___qwq20 小时前
SwiftUI 的状态管理包装器(Property Wrapper)
ios·swiftui·swift
游戏开发爱好者81 天前
苹果iOS26系统升级:液态玻璃与智能功能全解析
macos·ios·小程序·uni-app·objective-c·cocoa·iphone
Aftery的博客1 天前
flutter项目打包macOS桌面程序dmg
flutter·macos