遍历完
RenderObject
的TextField
树后,我就有了对底层RenderEditable
的引用。 RenderEditable
有一个名为 onCaretChanged
的属性,每次光标/插入符移动时都会触发附加的回调函数。
如果我从头开始构造一个
RenderEditable
,我会理解如何在构造函数中附加我的回调函数,但现在我只有在 Build 函数中创建它之后才能引用它。事后如何将回调函数附加到该对象?
谢谢!
看起来最近的 Flutter 更新 (v3.13.0)
onCaretChanged
已被删除。相反,解决此问题的方法是使用 TextEditingController
(提供文本和插入符更改)将 void 回调附加到 addListener
,并利用 RenderEditable
函数 getLocalRectForCaret
。