文本输入框需要一缓冲区来存储用户的输入,此外响应“确定”按键时调用软键盘,当软键盘退出时拷贝输入的字符串,它还需要限定输入字符串的个数,检查输入值的有效性,当输入非法时需要提示正确的数值范围。它的类定义如图5所示。
图5文本输入框类的定义
6 软键盘
图6显示了一个软键盘的实例,它分为四部分:标题栏、输入栏、操作集和选项集。标题栏显示输入对象的名称;输入栏显示当前已经输入的文本集,光标可以在输入字符的任意位置;操作集从左到右是:光标左移、光标右移、退格、下一页和回车,光标左移和光标右移控制光标在输入栏中进行移动,退格可以删除光标前的字符,下一页就是显示下一页选项集(如果有分页),回车退出软键盘并返回所输入的字符串,选项集是用户能进行选择操作的字符集。
图6软键盘实例
当软键盘Create()时,它从调用者的对象中获取标题栏字符串,再根据选项集的数目计算页数与行数;Destroy()方法与下拉选择框相同,除清除自己外还需要通知刷新窗口内的所有控件。RespBtn()方法依赖不同的按键操作:上/下按键修改行索引,左/右按键修改列索引,当索引被修改时,先注销前一个选项(表现为失焦),后激活当前选项(表现为获焦)。当前激活项是选项集时,“确定”按键将该选项的字符添加到输入栏中;当前激活项是操作集时,“确定”按键执行对应的操作。“取消”按键可以随时退出软键盘。