退格键是否在 macOS 上按预期工作?

问题描述

我正在使用 Flutter,由于没有原生 RichTextField 并且它是我正在开发的应用程序的核心,我想构建自己的。 我非常接近 iOS、Android 和 Web 上的工作版本,但我在 macOS 上遇到了一些问题。

-> 以下所有内容都将基于此代码片段(我正在扩展 TextEditingController 并覆盖 « value » setter):

  @override
  set value(TextEditingValue newValue) {
    print(‘Current selection : $selection’);
    print(‘New selection : ${newValue.selection}’);
    super.value = newValue;
  }

我注意到每个平台上的文本版本都不同,... 例如:

  • 在 iOS 上使用退格键删除文本时,似乎在删除之前选择了后面的字符-> 2 次调用 TextEditingController 的 « value » setter -> 选择不再折叠
  • 在Web上,字符被一次性删除-> 1次调用TextEditingController的值设置器->选择保持折叠
  • 在 macOS 上它会做一些奇怪的事情,我什至不明白是什么?‍♂️ —> 4 次调用 TextEditingController 的值设置器......为什么???

在 iOS、Android 和 Web 上一切正常,但在 macOS 上,每当我按下退格键时,都会对 « value » setter 进行 4 次调用

以下是一些屏幕截图,向您展示了每个平台的行为,当我只按一次 «退格» 键时:

iOS: iOS Selection Behavior

网页: Web Selection Behavior

macOS : macOS Selection Behavior

macOS 上的退格键有问题吗?或者它是否按预期工作而我没有得到它在引擎盖下的作用?如果是这种情况,有人能解释一下为什么在 macOS 上多次调用这段代码吗?

感谢您的帮助✌️!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)