2

我们有一个 Windows Store 应用程序,它需要输入用户名和密码才能访问服务。当身份验证连接到服务失败时,我们会显示一个弹出窗口,要求重新输入他们的用户名和密码。

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

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

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

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

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

4

2 回答 2

2

我通过在显示弹出窗口之前将焦点设置在虚构按钮(宽度 = 0,高度 = 0)上解决了这个问题。因此,当弹出窗口关闭时,焦点放在不需要键盘的按钮上。没有这个,焦点将放在最后一个焦点“控件”上,它可能对键盘有奇怪的行为。

希望有所帮助。

狐狸

于 2013-03-09T00:10:45.993 回答
0

您无法控制触摸键盘何时显示或隐藏。 本白皮书详细描述了显示和/或隐藏键盘时的逻辑。从最后一段:

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

于 2013-02-20T23:33:39.573 回答