我们有一个Windows应用商店应用,需要输入用户名和密码才能访问服务。 当身份验证连接到服务失败时,我们会显示一个弹出窗口,要求重新输入用户名和密码。
在平板电脑上,当用户将焦点放在用户名或密码字段上时,软键盘会正确显示。 我们的登录屏幕会在检测到软键盘时调整,以便所有字段和按钮都可见。
这一切都没有问题,当他们输入他们的详细信息并点击登录按钮时,弹出窗口关闭,应用程序继续。
但是出于某种原因,如果用户将注意力集中在用户名文本框上,然后点击登录按钮,我就无法解决问题,软键盘未被隐藏。 弹出窗口被解除,应用程序继续,但它会显示软键盘。 如果焦点位于密码框中,则键盘将按预期隐藏。
我尝试将焦点设置为按钮单击事件中的按钮控件,但这并不能解决问题。可能是因为按钮单击也会关闭弹出控件。
有没有人遇到过这个? 除了将焦点设置为另一个控件(在我的情况下不起作用)还有其他方法可以关闭软键盘吗?
答案 0 :(得分:2)
我通过在显示弹出窗口之前将焦点设置在虚拟按钮(width = 0,height = 0)上来解决问题。 因此,当关闭弹出窗口时,焦点将放在不需要键盘的按钮上。 如果没有这个,焦点就集中在最后一个聚焦的“控制”上,它可以在键盘上产生奇怪的行为。
希望有所帮助。
福克斯
答案 1 :(得分:0)
您无法控制何时显示或隐藏触控键盘。 This white paper详细描述了键盘显示和/或隐藏时的逻辑。从最后一段开始:
这意味着应用程序无法以编程方式调用触摸 键盘通过操纵焦点。