Flex 4.6隐藏/关闭软键盘

时间:2011-12-15 13:02:20

标签: android ios actionscript-3 flex flex4

我在flex 4.6和air 3.1中遇到了软键盘行为的一些问题

我有一个顶部有搜索栏的列表。当用户选择TextInput组件时,软键盘会弹出它应该的样子。 现在,当用户完成输入文本并按下返回(或完成/搜索/ ...)键时,我希望软键盘消失。

到目前为止我尝试过:

  • 我已将returnKeyLabel属性设置为“done”,按钮显示 相应地。然而,它只关闭Android上的键盘 IOS键盘只是熬夜。

  • 然后我尝试不设置returnKeyLabel并手动设置 捕获Return键并将焦点设置为另一个元素 不需要软键盘,但也不起作用。

  • 我也试过在按下Return键时调出我自己的“伪造”点击事件,但这也没有用。

作为搜索此问题的一部分,我发现了Dismiss SoftKeyboard in Flex Mobile,但这也无效。或至少不在flex 4.6

现在有没有人知道隐藏软键盘的好方法或让returnKeyLabel“完成”在IOS上工作,这将适用于flex 4.6 / air 3.1?

3 个答案:

答案 0 :(得分:9)

你尝试过这样的事吗?

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

答案 1 :(得分: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
            }
        }

答案 2 :(得分:0)

   ls.get('email').then((email) => {
     if (email!=null){
        ls.get('password').then((password) => {
          console.log("password: ", password);
          console.log("email: ", email);
          this.props.initApp(3,email,'');
          this.props.initApp(4,'',password);
          this.props.initApp(1,email,password,this.props.data);
        });
      }
    });

这与Francis&#39;相同。回答,但它节省了必须创建新功能