GWT Tree小部件吞下了箭头键盘事件,该事件使TreeItems中包含的TextBox不响应箭头键 [英] GWT Tree widgets swallow arrow keyboard events which make TextBoxes contained in TreeItems not respond to arrow keys
本文介绍了GWT Tree小部件吞下了箭头键盘事件,该事件使TreeItems中包含的TextBox不响应箭头键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在GWT 1.6.4中很容易重现:
Easily reproducible in GWT 1.6.4:
Tree tree = new Tree();
tree.addItem(new TextBox());
问题出在树中的onBrowserEvent上:
The problem lies with onBrowserEvent in Tree:
switch (eventType) {
case Event.ONKEYDOWN:
case Event.ONKEYUP: {
if (isArrowKey(DOM.eventGetKeyCode(event))) {
DOM.eventCancelBubble(event, true);
DOM.eventPreventDefault(event);
return;
}
}
就像许多GWT小部件一样,它们的子类不好.我必须有一个简单的技巧可以解决这个问题?
Like a lot of GWT widgets, they don't subclass well. There has to be a simple trick I could swing for this?
推荐答案
通过一点技巧解决了这个问题.
Solved this with a bit of a hack.
m_tree = new Tree()
{
@Override
protected boolean isKeyboardNavigationEnabled(TreeItem inCurrentItem)
{
return false;
}
@Override
public void onBrowserEvent(Event event) {
int eventType = DOM.eventGetType(event);
switch (eventType)
{
case Event.ONKEYDOWN:
case Event.ONKEYPRESS:
case Event.ONKEYUP:
return;
default:
break;
}
super.onBrowserEvent(event);
}
};
这篇关于GWT Tree小部件吞下了箭头键盘事件,该事件使TreeItems中包含的TextBox不响应箭头键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文