系统键盘常见问题

系统键盘无法用输入法打出汉字

可能原因1:工程字符编码不是GB2312,目前只有GB2312编码支持输入法打出汉字

解决办法:将工程编码修改为GB2312编码,参考 修改工程编码为utf8或者GB2312


可能原因2:输入法键盘没有切换成中文输入法

解决办法:点击左下角的“中/英”切换按钮,只有此按钮显示为“英”时才支持中文输入

../../_images/1_9.png

可能原因3:输入的字符无法拼音构成汉字,例:”www”

解决办法:输入的字符为拼音可构成汉字。例:”wen”,”ni”。

系统键盘无法输入字符

可能原因1:在调用键盘前读取了掉电存储空间中的数据,掉电存储空间并没有初始化,里面存储随机值中没有正确的结束符导致输入框被填满且无法显示。

解决办法:让设备第一次开机通过代码对掉电存储空间进行一次初始化

参考 如何对掉电存储空间进行初始化


可能原因2:修改键盘部分代码,导致键盘功能失效了。

解决办法:在页面窗口,右键系统键盘页面重置系统页面,参考 键盘解锁和重置

控件调用系统键盘输入值后,控件显示的数据没有改变

可能原因:数据输入时是通过切换页面调用系统键盘,当输入完数据会再次回到控件的页面,此时会再次执行页面初始化事件,初始化事件的赋值会对控件重新赋值,这样就会好像控件回到默认值(复位)一样,导致调用系统键盘给控件赋值无效。

解决办法:

  1. 不要在此控件页面初始化事件里给控件赋初始值,可以专门做一个用来上电赋初始值的页面,做为上电默认页,在此页面的初始化事件里完成所有的初始化动作之后,再切换到工程主页,这样初始化动作就只会上电执行一次,不会重复执行。

  2. 在数据输入页面建一个变量(设置全局),用来表示是否已经初始化过了,赋初始值的时候判断控件是否已经被初始化过,是的话就不要再赋初值了,这样键盘调用完之后再次回来就不会重复执行了。

控件调用系统键盘输入值后,其他控件又回到默认值

可能原因:数据输入时是通过切换页面调用系统键盘,切换页面的时候其他控件vscope设置为私有会释放内存,恢复为默认值。若其他控件不想恢复默认值,将它的vscope属性设置为全局就好了。