onKey method
Implementation
@override
bool onKey(KeyEvent event, RenderContext ctx) {
final idx = options.indexWhere((o) => o.value == selected);
if (event.key == NamedKey.arrowUp) {
final next = (idx <= 0 ? options.length - 1 : idx - 1);
if (next >= 0) onChanged?.call(options[next].value);
return true;
}
if (event.key == NamedKey.arrowDown) {
final next = (idx + 1) % options.length;
if (next >= 0) onChanged?.call(options[next].value);
return true;
}
if (event.char == ' ' || event.key == NamedKey.enter) {
return true;
}
return false;
}