GWT Tree小部件吞下了箭头键盘事件,该事件使TreeItems中包含的TextBox不响应箭头键 [英] GWT Tree widgets swallow arrow keyboard events which make TextBoxes contained in TreeItems not respond to arrow keys

查看:67
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆