gpt4 book ai didi

java - GXT FileUploadField 的按键事件

转载 作者:行者123 更新时间:2023-12-01 23:51:46 29 4
gpt4 key购买 nike

仅限 GX​​T 3.x。

对我来说,很明显 Sencha 故意设计了 FileUploadField 来阻止所有按键事件被检测到。

我尝试拦截 onBrowserEvent(Event),但无法检测到我在关注 FileUploadField 组件时通过按键生成的任何按键事件。

按键事件分流在哪里?

我找不到任何按键处理程序插入方法。

我希望允许通过按空格键或 Enter 键来触发文件上传。

除了从头开始重写一个全新的组件之外,有人可以告诉我如何才能实现键盘激活文件上传的目标吗?

最佳答案

onBrowserEvent 不会收到任何事件,除非您接收它们 - 您确定调用 sinkEvents 吗?您如何添加处理程序?如果您使用addDomHandler,它会为您接收它们,但是addHandler要么假设它们不是dom事件,要么您已经调用了sinkEvents 。如果不接收事件,浏览器就不知道将该事件传递给 GWT 小部件。如果所有事件都自动沉没,那么每次您在页面上移动鼠标时,您都会看到一系列事件,因为 mousemove 会为您传递的每个小部件及其所有父部件触发。

如果您重写 onBrowserEvent,那么您正在构建描述如何处理来自浏览器的实际事件的方法 - 这就是 com.google.gwt.user 所在的位置。 client.DOM 类连接到 Widget 以为其提供事件。如果没有将该方法确定为 final方法,那么只要浏览器正在生成这些事件并通过事件监听器传递它们,就无法阻止您(小部件用户)获取这些事件。

即使 onBrowserEvent 已被重写并最终确定,您仍然可以通过创建 NativePreviewHandler 并检查事件发生的位置来访问许多事件。这可以让您在事件到达小部件本身之前就进入该事件 - 您可以调用 NativePreviewEvent.cancel() 来防止它发生在小部件本身上,或者您可以在早期处理它处理程序。

关于java - GXT FileUploadField 的按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16222335/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com