[英]How can I set focus on text instead of button in SWT MessageDialog or MessageBox?
我目前正在为盲人制定程序。 在我的程序中,我有几个使用SWT MessageDialog
或MessageBox
实现的对话框。
这对于使用屏幕阅读软件的有视力的人或盲人来说效果很好。 但是使用可刷新盲文显示(仅文本,只有一行40个字符)的盲人在对话框中读取文本消息时遇到问题,因为对话框的焦点在按钮上,因此可刷新盲文显示会显示盲文按钮。 盲人必须向上滚动才能找到短信。
有时滚动非常困难,以至于他们不得不抱怨。 如果焦点在文本消息上,那将更好,然后他们可以在阅读文本时向下滚动,然后在结尾处是按钮文本。
如何使用SWT MessageDialog
或MessageBox
类管理焦点在文本消息上?
我不想创建自己的MessageDialog
类,因为我已经使用了SWT
库的几个选项。
除了名称中的“消息”部分外, MessageBox
和MessageDialog
根本不同。
MessageBox
是SWT的一部分,并使用本机平台的组件来显示对话框,因此其行为不能由应用程序代码更改。
MessageDialog
由JFace提供,可以自定义。 如果确实需要更改默认的焦点行为,则应仅使用MessageDialog
。
为了使显示消息的标签更加集中,您可以像这样重写create()
:
class MyMessageDialog extends MessageDialog {
@Override
public void create() {
super.create();
if( usingBraille ) {
messageLabel.forceFocus();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.