Как прослушать события клавиатуры в таблице GWT? - PullRequest
2 голосов
/ 05 июня 2010

В моей программе GWT у меня есть таблица с выбранной строкой.Я бы хотел переместить выделение строк с помощью клавиш «вверх» и «вниз» на клавиатуре.Поэтому мне нужно как-то перехватить ключевые события.

Документы GWT обрабатывают ключевые события только в полях ввода.Но у меня нет поля ввода!

Возможно ли это вообще?Может быть, это ограничение DOM / Javascript, которое GWT не может обойти ...

1 Ответ

2 голосов
/ 06 июня 2010

Работает с использованием Event.addNativePreviewHandler(NativePreviewHandler handler)

Но есть несколько вещей, которые следует учитывать:

  • Обработчик не ограничен виджетом. Это глобально для вашего приложения. Если вы меняете виджеты, вам, возможно, придется зарегистрировать и отменить регистрацию вручную.
  • Существуют различия браузера с событиями клавиатуры. Некоторые браузеры отправляют keyDown- и keyPress-Events, другие - просто keyDown-Events.

Чтобы обойти второй вопрос, вы можете получить имя браузера, используя этот код:

private static native String getUserAgent() /*-{
  return navigator.userAgent.toLowerCase();
}-*/;
...