我有一个带有 UITableView 的 View Controller 。 tableView 中的顶部单元格是屏幕上最顶部的可访问性元素。在 iPad 上,当从顶部单元格向左轻弹时,行为符合预期:它记录了没有更多元素可以获得焦点的声音。将辅助功能检查器与 iPhone 模拟器一起使用,再次如预期的那样,当向左导航经过顶部单元格时导航停止,并且层次结构中辅助功能元素的读出符合预期。
但是在任何真实的 iPhone 上,从顶部单元格向左滑动会导致:a) 整个 View 层次结构从屏幕上消失,并且焦点移动到导航栏所在的区域或 b) 在某些情况下焦点跳跃到表格 View 的底部单元格。
在这两种情况下,都会传递以下神秘错误消息:
[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
。如果不是,焦点将移动到后退按钮而不是导航栏周围的区域, View 消失(或跳转到 tableView 的底部),并显示相同的错误消息。
是否有人能够解释错误消息或建议调试问题的切入点?
最佳答案
当我试图使 UITableViewCell
符合 UIAccessibilityContainer
时,我遇到了同样的问题。
如果您正在使用 func index(ofAccessibilityElement element: Any) -> Int
... 而不是在找不到元素时返回 NSNotFound
文档告诉你,尝试返回对 super
的调用,所以 return super.index(ofAccessibilityElement: element)
它看起来像是 Apple 方面的一个错误,但它确实为我解决了这个问题。
关于ios - 了解画外音导航中的 _accessibilitySearchSubtreesAfterChildElement 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56191972/