在 swt 中归档的多行文本上使用 Tab 键吗?

2024-03-02

如何防止多行文本字段“窃取” Tab 键按下?

我的意思是:我想使用 TAB 在窗口的元素之间循环,但是当我输入多行文本时,TAB 变成“普通”键,并且只需将制表符插入到我正在键入的文本中。

我该如何处理这个问题?我应该编写一些自定义侦听器,还是可以使用 SWT 常量更改组件的行为?


SWT 定义了一种使用 TraverseListener 类实现此类行为的机制。以下片段(摘自here http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet241.java) 显示如何:

Text text1 = new Text(shell, SWT.MULTI | SWT.WRAP);
text1.setBounds(10,10,150,50);
text1.setText("Tab will traverse out from here.");
text1.addTraverseListener(new TraverseListener() {
    public void keyTraversed(TraverseEvent e) {
        if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS) {
            e.doit = true;
        }
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 swt 中归档的多行文本上使用 Tab 键吗? 的相关文章