我正在尝试将键盘快捷键添加到GWT菜单,与大多数Windows应用程序相同(例如 ALT + F ,然后 O - >激活“文件”菜单,然后“打开”MenuItem)。
我知道它可能与浏览器快捷方式有冲突,所以我对一种禁用它们的方式感兴趣......
从我可以看到谷歌在他们的应用程序中有各种快捷方式,所以必须有办法做到这一点。
谢谢!
修改
感谢Igor的回应,我能够在被其他控件使用之前捕获键盘输入。
我不知道的是如何使MenuBar显示自己(就像鼠标悬停时)。 MenuBar似乎没有方法.open():(
答案 0 :(得分:2)
我实际上没有尝试过,但NativeEvent
似乎就是你要找的。您可以通过Event.addNativePreviewHandler(Event.NativePreviewHandler)
:
Event.addNativePreviewHandler(new Event.NativePreviewHandler() {
@Override
public void onPreviewNativeEvent(Event.NativePreviewEvent event) {
nativeEvent nativeEvent = event.getNativeEvent();
// Do all sort of cool stuff with nativeEvent
}
});
要以编程方式选择菜单项,请使用MenuBar.selectItem(MenuItem item)
- 您可能需要跟踪相关的MenuItem
。从选定的MenuItem
开始,您可以通过MenuItem.getSubMenu()
进入子菜单,依此类推...... :)您可以使用自动打开设置(MenuBar.setAutoOpen(boolean autoOpen)
)来使其工作就像你想象的那样。