11

我在将画外音光标移动到 viewDidAppear 上的特定元素时遇到问题。我遵循Apple 的指导方针,专注于特定元素,在本例中为关闭按钮,但光标在其他地方结束

这是我的代码:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification,
                                self.dismissButton);
}

任何帮助,想法,都将不胜感激!太感谢了。

4

3 回答 3

9

如果我没记错的话,我无法可靠地专注于视图的第一个元素,因为 VO 通常会专注于视图的顶部。

您正在执行的代码是正确的,但此时系统将触发它自己的事件并覆盖您的事件。

您可以尝试做的是延迟发布通知。但这会导致焦点在打开视图时稍微跳跃。

这不是一个很好的答案,但这就是我目前所处的位置。如果我想出办法,我会更新你。

于 2014-01-13T11:48:47.520 回答
3

这个答案可能会有所帮助。

基本上,如果元素不在一个容器视图中,则需要将它们包装在容器视图中,然后覆盖指定的方法。

通过给你想要的元素一个低于其他元素的标签,你可以让视图对数组进行排序,以确保它是 VoiceOver 使用的accessibilityElements 数组中的第一个元素。或者您可以调整排序方法以另一种方式排序。

于 2014-01-13T14:35:58.860 回答
3

仅供参考:从 iOS 11 开始,我可以同时UIAccessibilityScreenChangedNotification可靠UIAccessibilityLayoutChangedNotification地关注 Voice Over 元素。

于 2018-02-27T22:35:11.473 回答