3

我有一个带有 UITableView 的视图控制器。tableView 中的顶部单元格是屏幕上最顶部的可访问性元素。在 iPad 上,当从顶部单元格向左滑动时,行为符合预期:它记录了没有更多元素可以获得焦点的声音。使用带有 iPhone 模拟器的可访问性检查器,当向左导航通过顶部单元格时,再次按预期导航停止,并且层次结构中可访问性元素的读数符合预期。

但是在任何真正的 iPhone 上,从顶部单元格向左滑动会导致:a)整个视图层次结构从屏幕上消失,焦点移动到导航栏所在的区域或 b)在某些情况下焦点跳到底部表格视图的单元格。

在这两种情况下,都会传递以下神秘的错误消息:

[Accessibility] |NSObjectAccessibility.m:7737 -[NSObject(AXPrivCategory)
_accessibilitySearchSubtreesAfterChildElement:direction:searchType:allowOutOfBoundsChild:range:]
|We should always have been able to find the index of the child element if we had one to begin with.

注意:navigationController?.setNavigationBarHidden设置为true. 如果不是,焦点将移动到后退按钮而不是导航栏周围的区域,视图消失(或跳转到 tableView 的底部),以及相同的错误消息。

是否有人能够解释错误消息,或建议调试问题的入口点?

4

1 回答 1

0

当我尝试UITableViewCell符合UIAccessibilityContainer.

如果您使用func index(ofAccessibilityElement element: Any) -> Int... 而不是在NSNotFound找不到文档告诉您的元素时返回,请尝试将调用返回到super,所以return super.index(ofAccessibilityElement: element)

它看起来像苹果方面的一个错误,但它确实为我解决了这个问题。

于 2020-06-25T18:29:54.143 回答