flutter 自定义删除键

2019-10-25  本文已影响0人  hi李昊天

需求是这样的,在没有弹出键盘的时候,可以删除文本框里面光标所在位置之前的文字;

开始实现 很简单

 void deleteText() {
    var value = _textController.value;
    var selection = value.selection;
    var text = value.text;

    String newText = '';
    if (selection.baseOffset != selection.extentOffset) {
      newText = selection.textBefore(text) + selection.textAfter(text);
      _textController.value = TextEditingValue(
          text: newText,
          selection: selection.copyWith(
              baseOffset: selection.baseOffset,
              extentOffset: selection.baseOffset));
    } else {
      newText = text.substring(0, selection.baseOffset - 1) +
          selection.textAfter(text);
      _textController.value = TextEditingValue(
          text: newText,
          selection: selection.copyWith(
              baseOffset: selection.baseOffset - 1,
              extentOffset: selection.baseOffset - 1));
    }
  }
上一篇 下一篇

猜你喜欢

热点阅读