SWT 对 CR/Return 在 TextField 上触发的事件感到困惑

问题描述 投票:0回答:1

我对 SWT 相当陌生,发现在 TextField 上按“Return”(至少)会做三件事:为 SWT.KeyUp 创建一个事件,几微秒后,为 SWT.Dispose 创建一个事件,以及 SWT.DefaultSelection,后两个(不小心?)具有相同的时间戳。

我错误地认为这只是一个事件,由接收它的第一个处理程序消耗。

现在我的 KeyUp 事件被一个本来不想获取它的监听器接收到,因为应该发生的事情已经通过 dispose 和默认处理程序进行了处理。

问题是:如何检测这种情况并告诉监听“Return”的监听器忽略此事件?


“许多类似措辞的问题都收到了诸如否决票之类的反馈” 哦,是的,这是这里的一种传统:-( .

event-handling swt
1个回答
0
投票

要停止正在处理的

Text
字段中的 Return,请在文本上使用遍历侦听器:

Text text = ....

text.addListener(SWT.Traverse, event ->
 {
    if (event.detail == SWT.TRAVERSE_RETURN)
      event.doit = false;
 });
© www.soinside.com 2019 - 2024. All rights reserved.