2011-12-15 39 views
6

Tôi đang gặp một số vấn đề với các hành vi softkeyboard trong flex 4.6 và không khí 3.1Flex 4.6 ẩn/bỏ softkeyboard

tôi có một danh sách với một thanh tìm kiếm ở trên. Khi người dùng chọn thành phần TextInput, phím chức năng bật lên như mong muốn. Bây giờ khi người dùng nhập xong văn bản của anh ta và nhấn phím return (hoặc đã thực hiện/tìm kiếm/...), tôi muốn softkeyboard biến mất.

Những gì tôi đã cố gắng cho đến nay:

  • tôi đã thiết lập thuộc tính returnKeyLabel để "thực hiện" và nút lãm lên cho phù hợp. Tuy nhiên, nó chỉ loại bỏ bàn phím trên Android, trên IOS bàn phím chỉ ở lại. Sau đó tôi đã cố gắng bằng cách không đặt returnKeyLabel và cách thủ công bắt phím Quay lại và đặt tiêu điểm thành một phần tử khác mà không yêu cầu bàn phím mềm nhưng điều đó cũng không hoạt động.

  • Tôi cũng đã thử gửi các sự kiện nhấp "giả" của riêng mình khi nhấn phím Quay lại nhưng điều này cũng không hoạt động.

Là một phần của việc tìm kiếm sự cố này, tôi đã tìm thấy điều này Dismiss SoftKeyboard in Flex Mobile nhưng cũng không hoạt động. Hoặc ít nhất là không phải trong flex 4.6

Bây giờ, có ai biết cách nào để giấu phím chức năng hoặc làm cho returnKeyLabel "thực hiện" hoạt động trên IOS sẽ hoạt động với flex 4.6/air 3.1?

Trả lời

9

Bạn đã thử một cái gì đó như thế này?

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

này hoạt động, thx;) – Beele

+0

Vui mừng làm việc của nó, khi bạn đặt returnKeyLabel bạn có quyền truy cập vào trình xử lý nhập cho phép bạn làm bất cứ điều gì bạn cần. – francis

3

Đối với các ứng dụng android di động flex tôi đã bắt chước ios cách trực quan của phương pháp cạo mủ trên nền để loại bỏ các softkeyboard như sau:

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