【问题标题】:Prevent MacOS from showing the accent selection popup in Flutter防止 MacOS 在 Flutter 中显示重音选择弹出窗口
【发布时间】:2021-09-27 11:41:54
【问题描述】:

我正在开发一个 Flutter 桌面应用,我必须处理原始键盘输入(处理用户输入的自定义绘制控件)。

为此,我使用TextInputClientTextInputConfiguration,通过TextInput.attach(client, config) 注册。

我一切正常,但是当我在 MacOS 上长按一个键时,我会收到一个按键,然后 MacOS 会显示重音选择弹出窗口。

有没有办法阻止 MacOS 这样做?我尝试了 TextInputConfiguration 参数的所有不同变体,但 MacOS 不在乎。

文本处理代码太多,无法将其粘贴到此处,但当需要或不明显时,我可以创建一个小示例来显示问题。

【问题讨论】:

    标签: flutter flutter-desktop


    【解决方案1】:

    好的,所以在通过互联网挖掘后,我找到了解决方案。 我把它放在这里,以便其他人也能找到它。

    解决方案是应用程序范围的设置。我没有找到在 TextInput 实例基础上启用/禁用该行为的解决方案。

    最后归结为为您的应用程序设置一个偏好,即您不希望点击并按住但自动重复行为。

    您可以在 Flutter 应用程序的 MacOS 集成层中执行此操作:

    AppDelegate.swift
    

    将以下方法添加到已经存在的 AppDelegate 中:

    override func applicationDidFinishLaunching(_ notification: Notification) {
        UserDefaults.standard.set(false, forKey: "ApplePressAndHoldEnabled");
    }
    

    仅此而已。

    【讨论】:

      猜你喜欢
      • 2018-04-23
      • 1970-01-01
      • 2023-02-17
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-24
      • 2017-10-19
      • 1970-01-01
      相关资源
      最近更新 更多