[iOS]在苹果手机上使用九宫格输入法时编辑框输入问题的一个临时解决方案

首先,上一个 Bug 的演示效果(QC 链接):

iosime_err

目前这个问题只能等待官方去解决,临时的解决办法是将控件的 ControlType 设置为 Platform,但 ControlType 为 Platform 的编辑框目前的版本有各种各样的限制和问题,比如下面的情况,只有再次点击下编辑框才能输入内容。另外它与Layout一类的组件配合不好,TLayout.ClipChildren 设置为 true 时,控件仍然显示,所以直接这样解决显然离可用有很大的距离。当然,如果你输入的内容只有有限的几项,不会被输入法遮盖而且全部显示出来的话,就没多大问题。isoedit1

好吧,这里提供的是一个临时的解决方案:

1、把 Edit 的 ControlType 仍然保留为 Styled,但设置 ReadOnly 为 true,以避免获得焦点时弹出输入法。

2、设置一个全局的计数器 FEnterCount 以避免重复进入。

3、将 Edit 的 OnEnter 和 OnClick 指向同一个事件(假设为 DoEnterEdit),在这个事件中弹出一个新窗体,这个新窗体:

(1)、上面放置一个Edit,ControlType 为 Platform;

(2)、一个确定和取消按钮;

(3)一个Label 用来放置输入提示,如果没有,可以不用。

4、在 DoEnterEdit 中检查计数并弹出新窗体来录入内容。

大概的思路就是这个样子。

iosimefix

分享到: