0

我正在使用 nsDialogs 在我的应用程序的安装程序中创建一个自定义页面,用户可以在其中决定标准安装和便携式安装。

为此,我创建了两个单选按钮控件,NSD_CreateRadioButton以便用户可以在两种安装模式之间做出决定。

在收到盲人用户的反馈后,我想增加通过键盘在这两个单选按钮之间导航的可能性。到目前为止,按下该Tab键直接导航到下方导航栏中的下一个按钮,而不是导航到 . Arrow up/Arrow down没有效果。

如何使用 nsDialogs 为键盘导航添加这种可能性?

4

2 回答 2

1

如果您使用${NSD_Create*}nsDialogs.nsh 中的宏,那么将为按钮控件设置 WS_TABSTOP 样式,您可以Tab使用它们。但是,标签顺序是:对话框中按钮之前的底部按钮。

分配访问键以允许用户直接访问控件。为此,您可以在特定字符之前的文本标签中添加一个 & 符号:

${NSD_CreateRadioButton} 0 13u 100% 15u "Click &Me" ; Activate by pressing Alt+M
Pop $0
${NSD_CreateRadioButton} 0 30u 100% 15u "&Or Me"
Pop $0

一旦其中一个单选按钮获得焦点,箭头键也应该起作用。如果您有多组不相关的单选按钮,则 WS_GROUP 样式也会在键盘导航中发挥作用。

于 2018-03-02T16:39:54.903 回答
0

通过尝试@Anders 提供的建议,我找到了解决此问题的方法。

在两次呼叫之间,NSD_CreateRadioButton我接到了另一个呼叫NSD_CreateLabel,显然混淆了两个单选按钮之间的分组。

当我通过两个后续调用创建单选按钮NSD_CreateRadioButton然后添加描述标签时,导航通过Arrow upArrow down工作。如果中间有另一个调用NSD_Create*,它会破坏分组。

于 2018-03-03T15:27:10.843 回答