在我的应用程序中,我有几个首选项页面。在其中一些中,用户必须编辑一些项目。如果用户使用Enter键-KEY,则整个首选项对话框将关闭,这是由于 OK 按钮具有焦点这一事实。
那么我怎样才能禁用这种行为呢?
我可以将焦点设置在页面上的任何项目上,但按下Enter会强制关闭对话框。
扩展默认 Dialog 并覆盖以下方法。
@Override
protected void createButtonsForButtonBar(Composite parent) {
// Its the same as super.createButtonsForButtonBar(), but makes no default buttons by sending false.
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, false);
createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
}
您可以在目标小部件上使用此代码
widget.addListener(SWT.Traverse, new Listener() {
public void handleEvent(Event e) {
if (e.detail == SWT.TRAVERSE_RETURN)
e.doit = false;
}
});