2013-02-20 113 views
2

我们有一个Windows应用商店应用,需要输入用户名和密码才能访问服务。 当认证失败连接到服务时,我们显示一个弹出框,要求重新输入他们的用户名和密码。未隐藏Windows 8软键盘

在平板电脑上,当用户将焦点置于用户名或密码字段时,软键盘显示正确。 我们的登录屏幕会在检测到软键盘时进行调整,以便所有字段和按钮都可见。

这一切都没有问题,当他们输入他们的细节,并点击登录按钮弹出窗口关闭,应用程序继续。

但由于某种原因,我无法解决用户是否将注意力集中在用户名文本框上,然后点击登录按钮时软键盘未被隐藏。 弹出窗口被解散,应用程序继续运行,但它会显示软键盘。 如果焦点位于密码框中,则按预期隐藏键盘。

我已经尝试将焦点设置为按钮单击事件中的按钮控件,但这不能解决问题。可能是因为按钮单击也会关闭弹出控件。

有没有人遇到过这个? 除了将焦点设置为另一个控件(不适用于我的情况)之外,还有其他方法可以关闭软键盘吗?

回答

0

您无法控制何时显示或隐藏触摸键盘。 This white paper详细描述了键盘显示和/或隐藏时的逻辑。从最后一段开始:

这意味着应用程序无法通过焦点操作以编程方式调用键盘 键盘。

2

我通过在显示弹出窗口之前将焦点设置为虚构按钮(width = 0,height = 0)解决了该问题。 所以当弹出窗口关闭时,焦点放置在不需要键盘的按钮上。 如果没有这个,重点放在最后聚焦的“控制”上,这可能会对键盘造成一种奇怪的行为。

希望能有所帮助。

Fox