flutter - 防止 MacOS 在 Flutter 中显示重音选择弹出窗口
问题描述
我正在开发一个 Flutter 桌面应用程序,我必须处理原始键盘输入(处理用户输入的自定义绘制控件)。
为此,我使用 aTextInputClient
和 aTextInputConfiguration
通过TextInput.attach(client, config)
.
我一切正常,但是当我在 MacOS 上长按一个键时,我会收到一个按键,然后 MacOS 会显示重音选择弹出窗口。
有没有办法阻止 MacOS 这样做?我尝试了所有不同的TextInputConfiguration
参数变化,但 MacOS 不在乎。
文本处理的代码太多,无法将其粘贴到此处,但当需要或不明显时,我可以创建一个显示问题的小示例。
解决方案
好的,所以在通过互联网挖掘后,我找到了解决方案。我把它放在这里,以便其他人也可以找到它。
解决方案是应用程序范围的设置。我没有找到在 TextInput 实例库上启用/禁用该行为的解决方案。
最后,它归结为为您的应用程序设置一个偏好,即您不想要点击并按住但自动重复行为。
您可以在 Flutter 应用程序的 MacOS 集成层中执行此操作:
AppDelegate.swift
将以下方法添加到已经存在的 AppDelegate 中:
override func applicationDidFinishLaunching(_ notification: Notification) {
UserDefaults.standard.set(false, forKey: "ApplePressAndHoldEnabled");
}
就这样。
推荐阅读
- twilio - 通话挂断前的Twilio api播放消息
- excel - 在日期类型标题上使用 INDIRECT()
- python - 如果匹配,我需要比较 2 个不同数据帧的 2 个字段,我们需要填充详细信息,否则在 python 中填充空值
- node.js - 无法使用 ReactJs MongoDB NodeJS 删除项目
- python - 在scapy中通过src mac过滤数据包
- java - 包 x 在未命名的模块中声明,但模块 x 不读取它
- linux - 如何在一台机器上构建 samba 并在另一台机器上安装二进制文件?
- python - 如何使用 Mongoengine 订购坐标?
- java - Jackson 错误解析器尝试解析子类型,但我的类是简单的 POJO
- jetty - Jetty 稳定版本