【问题标题】:Flutter Global Keyboard ShortcutsFlutter 全局键盘快捷键
【发布时间】: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


    【解决方案1】:

    你弄明白了吗? 我和你陷入了类似的境地。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 2020-02-06
      相关资源
      最近更新 更多