需求是这样的,在没有弹出键盘的时候,可以删除文本框里面光标所在位置之前的文字;
开始实现 很简单
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));
}
}
网友评论