0

問題

チタンを使用してテキストフィールドの戻るボタンを処理したいと思います。

ウィンドウにイベント android:back があることは知っていますが、テキストフィールドでは発生しません。

チタンを使用してテキストフィールドの戻るボタン (またはキーボードの非表示イベント) を処理するにはどうすればよいですか?

編集:ここに、私が言いたいことを説明するためのコードと説明があります:

再現する手順:

  1. テキストフィールドをクリック > focus イベントが発生し、キーボードが表示されます
  2. 戻るボタンを押す > キーボードは非表示ですが、ぼかしイベントは呼び出されず、テキストフィールドはフォーカスを失っていません

コード:

var textfield = Ti.UI.createTextfield();
textfield.addEventListener('android:back', function() {
  // this method is never called, so this event does not run on textfield
});

textfield.addEventListener('focus', function() {
  // this method is called at step 1
});

textfield.addEventListener('blur', function() {
  // this method is not called at step 2 because 
  // the back button only hide the keyboard but the focus is not lost
});

// what code should I use to catch event when the keyboard is hidden 
// when pressing the back button ?
4

1 に答える 1

0

このblurイベントは、キーボードが閉じられるたびに発生します。これがそのドキュメントです。

textFieldtype のオブジェクトを作成したと仮定すると、非常に簡単に聞くことができますTitanium.UI.TextField

textField.addEventListener('blur', function(e) {
    var val = e.value; // Get current value when the keyboard closed (the right way) as opposed to textField.value (the wrong way)
    alert("The text is : "+value);
});

イベントをリッスンするandroid:back場合は、ウィンドウでリッスンする必要があります。

var win = Ti.UI.currentWindow; 
win.addEventListener('android:back', function(e) {
    // do crazy things
});

ドキュメントによると、おそらくチタンのバグではないにしても、これはうまくいくはずですか?

于 2012-09-18T21:55:20.750 に答える