我使用NSStackView轻松组织UI元素并将它们放在主视图的不同区域。
现在,VoiceOVer在一个层中看到所有UI元素,我想知道如何制作堆栈视图,以便VoiceOver用户必须进行交互并停止与每个堆栈视图的交互。
更好的是,VoiceOver作为一个组会自动显示任何通用视图吗?我可以将它用作容器吗?
如果有人可以在Swift中提供任何代码段,我真的很感激。
谢谢!
答案 0 :(得分:1)
通过采用NSAccessibilityGroup,我能够让NSStackView作为一个组工作。
class GroupView:NSStackView, NSAccessibilityGroup {
override func accessibilityLabel() -> String? {
return "Test"
}
}
然后从故事板中选择堆栈视图,打开身份检查器,并将GroupView指定为自定义类。
答案 1 :(得分:0)
这不需要子类化,您只需要调用:
stackView.setAccessibilityElement(true)
然后,最好还为VoiceOver用户添加一些有关他们将遇到的新组的内容的信息。示例:
stackView.setAccessibilityLabel("actions")
stackView.setAccessibilityRole(.toolbar)
答案 2 :(得分:0)
这不需要子类化。只需致电:
stackView.setAccessibilityElement(true)
然后您还应该为 VoiceOver 用户添加一些有关他们将遇到的新组内容的信息。示例:
stackView.setAccessibilityLabel("actions")
stackView.setAccessibilityRole(.toolbar)