deleteText method
void
deleteText()
Deletes a single character at the cursor position or removes the active selection.
Implementation
void deleteText() {
final field = _focusedField;
if (field == null) return;
final controller = controllers[field];
if (controller == null) return;
final currentText = controller.text;
final selection = controller.selection;
int start = selection.start;
int end = selection.end;
if (start < 0 || end < 0) {
start = currentText.length;
end = currentText.length;
}
if (start == end) {
if (start > 0) {
final newText = currentText.replaceRange(start - 1, start, '');
controller.value = TextEditingValue(
text: newText,
selection: TextSelection.collapsed(offset: start - 1),
);
}
} else {
final newText = currentText.replaceRange(start, end, '');
controller.value = TextEditingValue(
text: newText,
selection: TextSelection.collapsed(offset: start),
);
}
notifyListeners();
}