【发布时间】:2010-11-10 11:01:42
【问题描述】:
当我编辑一个文本字段并按 Ctrl + A 时,然后不是选择字段中的所有文本,而是主菜单的 Ctrl处理程序kbd> + A 被调用。
如何恢复默认行为,而不丢失菜单中的 Ctrl + A 加速键?
【问题讨论】:
标签: java events swt keyboard-shortcuts
当我编辑一个文本字段并按 Ctrl + A 时,然后不是选择字段中的所有文本,而是主菜单的 Ctrl处理程序kbd> + A 被调用。
如何恢复默认行为,而不丢失菜单中的 Ctrl + A 加速键?
【问题讨论】:
标签: java events swt keyboard-shortcuts
Ctrl + A 使用以下 sn-p 在我的 WinXP 工作站上没有执行任何操作。所以没有“默认行为”:
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;
public class Snippet22 {
public static void main( String[] args ) {
Display display = new Display();
Shell shell = new Shell(display);
Text text = new Text(shell, 0);
text.setText("ASDF");
text.setSize(64, 32);
shell.pack();
shell.open();
while ( !shell.isDisposed() ) {
if ( !display.readAndDispatch() ) display.sleep();
}
display.dispose();
}
}
如果您希望 Ctrl + A 按预期工作,请添加这样的侦听器:
Listener ctrlAListener = new Listener() {
public void handleEvent( Event event ) {
if ( event.stateMask == SWT.CTRL && event.keyCode == 'a' ) {
((Text)event.widget).selectAll();
}
}
};
并将其添加到您使用的每个 Text 实例中:
text.addListener(SWT.KeyUp, ctrlAListener);
【讨论】: