[FMX]开年第一弹:修改 FMX.Controls 避免按住编辑框移动时弹出输入法的问题

在 FMX 中,当用户在编辑框上按下时,许多场景下,是要拖动位置,但是,FMX.Controls 在 MouseDown 事件中,就调用了控件的 SetFocus ,结果就造成按下时,弹出输入法,影响拖动操作。我们可以将相应的代码那到 MouseUp 中来解决这一问题。同时,我们加一个判断,以避免将拖动识别为点击。

所以,我们要做的第一步是打开 FMX.Controls.pas,找到下面的这段代码:

将第一句删除,以避免它设置焦点,修正成下面这样:

然后,我们需要找到 TControl.MouseUp 的代码(原始):

我们要修改下它,以在用户松开时,将如果用户是点击在相应的按钮(移动距离小于10,这个阀值大家可以自己调节,一般为5-10),则设置焦点:

好了,剩下的就是将修改后的源码复制到你工程的当前目录下,用来替换系统自带的FMX.Controls。

实际运行效果视频:

分享到:

0 条评论

沙发空缺中,还不快抢~