getDefaultItems static method
- EditableTextState editableTextState
The default items for the given EditableTextState.
For example, IOSSystemContextMenuItemCopy will only be included when the field represented by the EditableTextState has a selection.
See also:
- EditableTextState.contextMenuButtonItems, which provides the default ContextMenuButtonItems for the Flutter-rendered context menu.
Implementation
static List<IOSSystemContextMenuItem> getDefaultItems(EditableTextState editableTextState) {
final items = <IOSSystemContextMenuItem>[];
// Use the generic Flutter-rendered context menu model as the single source of truth.
for (final ContextMenuButtonItem button in editableTextState.contextMenuButtonItems) {
switch (button.kind) {
case ContextMenuButtonKind.copy:
items.add(const IOSSystemContextMenuItemCopy());
case ContextMenuButtonKind.cut:
items.add(const IOSSystemContextMenuItemCut());
case ContextMenuButtonKind.paste:
items.add(const IOSSystemContextMenuItemPaste());
case ContextMenuButtonKind.selectAll:
items.add(const IOSSystemContextMenuItemSelectAll());
case ContextMenuButtonKind.lookUp:
items.add(const IOSSystemContextMenuItemLookUp());
case ContextMenuButtonKind.searchWeb:
items.add(const IOSSystemContextMenuItemSearchWeb());
case ContextMenuButtonKind.share:
items.add(const IOSSystemContextMenuItemShare());
case ContextMenuButtonKind.liveTextInput:
items.add(const IOSSystemContextMenuItemLiveText());
case ContextMenuButtonKind.delete:
// No native iOS system menu button for Delete — intentionally ignored.
case ContextMenuButtonKind.translate:
// Not mapped to a system menu item yet.
case ContextMenuButtonKind.custom:
// Custom items are provided explicitly via SystemContextMenu.items,
// not via defaults. Intentionally ignore in default mapping.
case _:
// Kinds added in the future are ignored until they're mapped here.
}
}
return items;
}