问题描述
我正在使用 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 次调用。
以下是一些屏幕截图,向您展示了每个平台的行为,当我只按一次 «退格» 键时:
macOS : macOS Selection Behavior
macOS 上的退格键有问题吗?或者它是否按预期工作而我没有得到它在引擎盖下的作用?如果是这种情况,有人能解释一下为什么在 macOS 上多次调用这段代码吗?
感谢您的帮助✌️!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)