2011-12-15 8 views
6

Estoy teniendo algunos problemas con el comportamiento softkeyboard en Flex 4.6 y 3.1 del aireFlex 4.6 Ocultar/descarto softkeyboard

Tengo una lista con una barra de búsqueda en la parte superior. Cuando un usuario selecciona el componente TextInput, el teclado virtual aparece como debería. Ahora cuando el usuario termine de escribir su texto y presiona la tecla de retorno (o la tecla done/buscar/...) quiero que el teclado desaparezca.

Lo que he probado hasta ahora:

  • He establecido la propiedad returnKeyLabel a "hecho" y el botón de muestra en consecuencia. Sin embargo, solo descarta el teclado en Android, en IOS, el teclado simplemente permanece activo.

  • Entonces intenté si no se establece la returnKeyLabel y manualmente agarrar la tecla de retorno y establecer el foco a otro elemento que no requiere una softkeyboard pero eso tampoco funcionó.

  • También intenté despachar mis propios eventos de clic "falsos" cuando se presionó la tecla Retorno pero esto tampoco funcionó.

Como parte de la búsqueda de este problema que encontraron esta Dismiss SoftKeyboard in Flex Mobile pero eso tampoco funcionó. O al menos no en flex 4.6

Ahora, ¿alguien sabe de una buena manera de ocultar el teclado o hacer que el returnKeyLabel "hecho" funcione en iOS que funcionará con flex 4.6/air 3.1?

Respuesta

9

¿Has probado algo como esto?

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

esto funciona, THX;) – Beele

+0

Glad su trabajo, cuando Establezca un returnKeyLabel para obtener acceso a un controlador de enter que debería permitirle hacer lo que necesite. – francis

3

para aplicaciones de Android móviles flex he imitado el iOS de forma intuitiva de tapping en el fondo para eliminar el softkeyboard de la siguiente manera:

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 
      } 
     }