美文网首页
2021-12-07 Flutter iOS快捷键入短信重复2次

2021-12-07 Flutter iOS快捷键入短信重复2次

作者: 耀木i | 来源:发表于2021-12-07 16:20 被阅读0次

    问题场景: 在登录界面获取验证码短信时点击 键盘上方点击快捷输入短信验证码 会输入两次验证码.

    解决方案1:
    限制输入框输入的长度 ,短信验证几位就限制成几位.
    快捷有效.但如果后期更换短信模板位数变化会有影响.
    maxLength:[验证码位数]

    解决方案2:
    判断重复的验证码
    定义 TextEditingController
    TextEditingController _controller = TextEditingController();

    TextField(
      controller: _controller,
      onChanged: (value) {
        if ('$_authCode$_authCode' == value) {       //键入重复的情况
            setState(() {
                _controller.value = TextEditingValue(
                text: _authCode,//不赋值新的 用旧的;
                selection: TextSelection.fromPosition(
                    TextPosition(
                        affinity: TextAffinity.downstream,
                        offset: _authCode.length),
                    ),//  此处是将光标移动到最后,
                );
            });
        } else {
            //第一次输入验证码
            setState(() {
                _controller.value = TextEditingValue(
                text: value,
                selection: TextSelection.fromPosition(
                    TextPosition(
                        affinity: TextAffinity.downstream,
                        offset: value.length),
                    ),//  此处是将光标移动到最后,
                );
                _authCode = value;
            });
          }
        },
      ),
    

    造成原因: ??? 网上说出发了原生 UITextFieldTextDidChangeNotification 的问题导致的.

    相关文章

      网友评论

          本文标题:2021-12-07 Flutter iOS快捷键入短信重复2次

          本文链接:https://www.haomeiwen.com/subject/ilhaxrtx.html