我有一个带有 autoHide = true 的 PopuppupPanel。除了我点击 RichTextArea 的情况外,它工作得很好。如果我点击它,什么也不会发生,并且 PopupPanel 不会自动关闭。
我检查了“自动关闭”PopupPanel 的代码。当面板显示时,他们添加了一个 Handler,如下所示:
nativePreviewHandlerRegistration = Event.addNativePreviewHandler(new NativePreviewHandler() {
public void onPreviewNativeEvent(NativePreviewEvent event) {
previewNativeEvent(event);
}
});
..并且在 previewNativeEvent(event) 中,如果满足某些条件,它们会隐藏面板,尤其是 MouseDownEvent 被捕获。
但看起来 RichTextArea 没有触发 MouseDownEvent!在调试 previewNativeEvent(event) 时我无法捕获此事件。看来我必须手动触发它。我在 RichTextArea 的容器或其父级上触发它,它们分别是 HTMLPanel 和 div:
myPanel.fire(new MouseDownEvent() {});
但这没有给我任何结果:如果我在事件目标上添加 MouseDownHandler 可以捕获该事件,但它不会被我上面提到的 NativePreviewHandler 捕获。
所以,最后:
- 为什么我的 RichTextArea 不能“自动关闭”我的 PopupPanel?
- 当我认为 PreviewNativeEventHandler 应该捕获系统中的所有事件并且我可以使用该处理程序打印以记录我的应用程序中的所有事件时,我是对的吗?
- 为什么 PreviewNativeEvent 处理程序没有从我的 RichtextArea(原始的或人工的)中捕获 MouseDown 事件?