在Symbian S60第5版中,使用哪个API打开虚拟键盘?文档似乎缺乏相关信息。
如果您正在使用平台原生控件,则当用户访问文本编辑控件时,虚拟键盘将自动弹出。
如果您正在制作自定义控件,则需要通过添加自己版本的虚拟键盘来处理其选择:创建一个新的文本编辑、窗口所有权的虚拟键盘外观类似的自定义控件,并具有正确的按钮。在所有应用程序中重复使用它。有一天,诺基亚将意识到他们犯了一个明显的错误,并公开提供API。
如果您正在使用直接屏幕访问,那么您不会指望非常s60外观的虚拟键盘从无处弹出。同样,在屏幕上绘制一个漂亮的图像,以让用户知道虚拟键位的位置并对指针事件做出反应。这将不太可重用,除非您将大量定制(背景、按钮边缘等)构建到其中。
编辑:诺基亚可能依赖Qt来解决此问题。我希望该控件是当前4.7版本的Qt的一部分。
在自定义编码的动态滚动区域内调整QLineEdit的焦点时,我遇到了类似的问题(如何手动打开虚拟键盘)。然后,我发现这在C7 Symbian^3手机上的Qt 4.6.3中显然有效:
// lineEdit is an instance of QLineEdit
QApplication::postEvent(lineEdit, new QEvent(QEvent::RequestSoftwareInputPanel));
谢谢tihi,非常有用的提示!还有可以触发的“关闭虚拟键盘”事件:
QApplication::postEvent(lineEdit, new QEvent(QEvent::CloseSoftwareInputPanel));