【发布时间】:2022-12-09 06:05:55
【问题描述】:
我正在编写一个应该支持搜索某些内容的应用程序。为此,我实施了搜索TextField。现在我想在按下组合键ctrl + F 时集中说TextField。
为了实现这一点,我将我的视图包装在 Shortcuts 和 Actions 组件中,如下所示:
return Scaffold(
body: Shortcuts(
shortcuts: {
LogicalKeySet(LogicalKeyboardKey.keyF, LogicalKeyboardKey.control): MTCSearchIntent(),
},
child: Actions(
actions: {
MTCSearchIntent: MTCFocusAction(null),
},
child: ...
),
),
);
如果搜索栏已经聚焦,则此实现有效,但这种做法违背了聚焦它的目的。所以我想知道,如何将 Shortcut 侦听器应用到整个屏幕?或者换个方式问,是什么决定了交互的范围,Shortcut组件,Action组件,与FocusNode相关的东西?
flutter.dev 上的示例似乎也不适用于全球。事实上,它们似乎根本不适合我。
我在这里使用一个最小的例子重现了这个例子:https://dartpad.dev/?id=55902a179be137d9025ea02170d749a7
当 TextField 获得焦点时,ArrowUp和ArrowDown 操作将按预期工作。但是,如果突出显示应用程序的任何其他部分,则永远不会触发 Intent。
【问题讨论】:
标签: flutter flutter-web