gpt4 book ai didi

java - 为什么按键事件没有发送到 GWT 的 TextInputCell.onBrowserEvent() 方法?

转载 作者:行者123 更新时间:2023-11-30 05:07:03 25 4
gpt4 key购买 nike

问题:

我正在重写 GWT TextInputCell.onBrowserEvent() 方法,以尝试对在字段中输入的字符应用过滤。我如何无法获取用户在 keydown 事件中输入的实际字符?

我尝试过的:

我可以使用 NativeEvent.getKeyCode() 方法来获取按键代码,但这还不够,因为我想知道他们输入的特定字符,因此我可以将该字符与普通 express 。据我了解, keyCode 只是告诉我他们在键盘上键入的键,所以我无法区分大写“A”和小写“a”。我还可以在 keyup 事件上从 InputElement 获取值,但这已经太晚了,因为角色已经渲染到 UI 元素。

当我调用 NativeEvent.getCharCode() 时,它会为我输入的任何字符返回 0。我在 Chrome 和 Firefox 上尝试过这个。为什么getCharCode()总是返回0?这是一个错误吗?

例如,以下是我尝试过的方法以及在键盘上输入数字“1”时得到的值:

event.getKeyCode() - 49
event.getCharCode() - 0
Character.toChars(event.getCharCode())[0] - (a box character because charCode was 0)
String.valueOf(Character.toChars(event.getCharCode())) - (a box character because charCode was 0)
String.valueOf((char) event.getKeyCode()) - 1

更新:

好的,所以我发现我需要捕获 keypress 事件而不是 keydown,但我打印了每个 event.getType() 我键入时发生的每个事件的值,但我从未看到触发过任何 keypress 事件。所以我更新的问题是,为什么 keypress 事件没有发生?如果我无法在 TextInputCell.onBrowserEvent() 方法中捕获它,是否有其他方法为 TextInputCell 捕获它。

最佳答案

事实证明,AbstractCell 采用了表示“consumedEvents”的字符串列表。这基本上限制了子单元类可以处理的事件类型。 TextInputCell 传入change 和keyup 事件类型。 AbstractInputCell 添加了焦点、模糊和按键功能。因此,TextInputCell 无法处理按键 native 事件。

我最终在自己的项目中创建了 TextInputCell 的近乎精确的副本,并将按键类型添加到构造函数中。然后我就能够捕获事件并进行我想做的过滤。我将在 GWT 中创建一个请求,将此功能添加到 TextInputCell 中。

我还创建了一个功能请求以将此功能添加到 GWT:http://code.google.com/p/google-web-toolkit/issues/detail?id=5891

关于java - 为什么按键事件没有发送到 GWT 的 TextInputCell.onBrowserEvent() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738583/

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