1

ユーザーがEnterキーを押してSuggestBoxで提案を選択したときに、このKeyイベントがバブリングするのを防ぎたいと思います。

私はこのコードをラッピングしていますComposite

    Event.addNativePreviewHandler(new Event.NativePreviewHandler() {

        @Override
        public void onPreviewNativeEvent(NativePreviewEvent event) {
            if (event.getTypeInt() == Event.KEYEVENTS) {
                int key = event.getNativeEvent().getKeyCode();
                if (key == KeyCodes.KEY_ENTER) {
                    event.cancel();
                }
            }
        }
    });

ただし、このハンドラーが呼び出されることはありません。

4

3 に答える 3

2

あなたの方法がうまくいかない理由がわかりません。しかし、私には別のアプローチがあります。提案ボックスのキー イベント リスナーを追加します。Enter キーが押された場合は、イベントの伝搬をキャンセルします。

suggestBox.addKeyPressHandler(new KeyPressHandler() {
        @Override
        public void onKeyPress(KeyPressEvent event) {
            int key = event.getNativeEvent().getKeyCode();
            if (key == KeyCodes.KEY_ENTER) {
                event.stopPropagation();
            }
        }
});
于 2012-04-18T11:56:02.660 に答える
1

これは私にとってはうまくいきました:

suggestBox.addKeyPressHandler(new KeyPressHandler() {
            @Override
            public void onKeyPress(KeyPressEvent event) {
                int key = event.getNativeEvent().getKeyCode();
                if (key == KeyCodes.KEY_ENTER) {
                    event.getNativeEvent().preventDefault();
                }
            }
        });
于 2012-08-15T09:28:26.023 に答える