强制大写 TextFormField Flutter

问题描述 投票:0回答:3

如何强制 TextFormField 仅包含大写字母? textCapitalization:TextCapitalization.characters 让用户切换回小写,因此这不足以满足我的需求。

flutter user-input uppercase
3个回答
11
投票

将textInputFormatter添加到文本字段

TextField(inputFormatters: [UpperCaseTextFormatter()]),

格式化类

class UpperCaseTextFormatter extends TextInputFormatter {
  @override
  TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
    return TextEditingValue(text: newValue.text.toUpperCase(), selection: newValue.selection);
  }
}

3
投票

只需将此添加到您的

TextFormField

inputFormatters: [UpperCaseTextFormatter()],
 textCapitalization: TextCapitalization.characters,

完整代码

TextFormField(
      autofillHints: [AutofillHints.name],
      inputFormatters: [UpperCaseTextFormatter()],
      textCapitalization: TextCapitalization.characters,
      textInputAction: TextInputAction.next,
      style: TextStyle(fontSize: 20),
      decoration: InputDecoration(
      contentPadding: EdgeInsets.symmetric(
      horizontal: 0, vertical: 0),
      labelText: "Hello World",
      hintText: '',
    ),
 ),

0
投票

要使键盘始终大写,您需要将这些属性设置为 TextField。

keyboardType: TextInputType.text
textCapitalization: TextCapitalization.characters
© www.soinside.com 2019 - 2024. All rights reserved.