Flex 4.6如何隐藏/关闭软键盘

6

我在Flex 4.6和Air 3.1中遇到了一些软键盘行为方面的问题。

我有一个带有搜索栏的列表。当用户选择TextInput组件时,软键盘弹出就像它应该的那样。现在,当用户完成输入并按下return(或done/search/...)键时,我想让软键盘消失。

我尝试过以下方法:

  • 我将returnKeyLabel属性设置为“done”,按钮会相应地显示。但是,它只在Android上关闭键盘,在IOS上键盘仍然保持打开状态。

  • 我尝试通过不设置returnKeyLabel并手动捕获Return键来设置另一个不需要软键盘的元素的焦点,但这也没有起作用。

  • 我还尝试通过在按下Return键时分派自己的“伪造”单击事件来解决此问题,但这也没有起作用。

在寻找关于此问题的解决方法时,我发现了这个Dismiss SoftKeyboard in Flex Mobile,但在flex 4.6中它也没有起作用。

现在,有人知道如何隐藏软键盘或使returnKeyLabel“done”在IOS上起作用,并且与flex 4.6/air 3.1兼容的好方法吗?

3个回答

9

你尝试过像这样的东西吗?

<s:TextInput prompt="First Name" returnKeyLabel="done" enter="handlerFunction()"/>  
private function handlerFunction():void{
    stage.focus = null
} 

很高兴它正在工作,当你设置returnKeyLabel时,你可以访问一个进入处理程序,应该让你做任何你需要的事情。 - francis

3

针对Flex移动Android应用程序,我已经模仿了直观的iOS方式,通过在背景上轻点触来移除软键盘,具体实现如下:

import spark.components.supportClasses.*
        protected function application1_clickHandler(event:MouseEvent):void
        {

            if(event.target is StyleableTextField || event.target is StyleableStageText){
                // ignore because came from a textInput
            }else{
                stage.focus = null
                // to remove the softkeyboard
            }
        }

0
<s:TextInput prompt="First Name" returnKeyLabel="done" enter="{stage.focus = null}"/>

这与Francis的答案相同,但它避免了需要创建一个新函数的麻烦。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接