0

问题

我想使用钛处理文本字段上的后退按钮。

我知道窗口上有一个事件 android:back 但它不会在文本字段上触发。

如何使用钛处理文本字段上的后退按钮(或键盘隐藏事件)?

编辑:这里有一些代码和说明来说明我想说的:

重现步骤:

  1. 单击文本字段 > 触发焦点事件,显示键盘
  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每当键盘关闭时都会触发该事件。这是它的文档。

textField假设您创建了一个类型的对象,您可以很容易地听它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 回答