selection property

TextSelection selection

The currently selected text.

If the selection is collapsed, then this property gives the offset of the cursor within the text.

Implementation

TextSelection get selection => value.selection;
void selection= (TextSelection newSelection)

Setting this will notify all the listeners of this TextEditingController that they need to update (it calls notifyListeners). For this reason, this value should only be set between frames, e.g. in response to user actions, not during the build, layout, or paint phases.

This property can be set from a listener added to this TextEditingController; however, one should not also set text in a separate statement. To change both the text and the selection change the controller's value.

Implementation

set selection(TextSelection newSelection) {
  if (newSelection.start > text.length || newSelection.end > text.length)
    throw FlutterError('invalid text selection: $newSelection');
  value = value.copyWith(selection: newSelection, composing: TextRange.empty);
}