我试图访问子视图中的一个元素,但我发现这样做是不可能的。
等级制度是:
视图主计长:
我想访问zipCodeEntered文本字段。我在它上有一个可访问性标签,名为"zipCodeEntered“。
当我尝试记录自动化时,它只注册superview "userEnterView“,而不是我可以点击的实际文本字段。
我打印"app.otherElementsSUPER_VIEW_NAME.debugDescription“以查看该层次结构中有哪些元素,而它没有打印任何元素。
对于为什么我不能访问这些元素/如何访问它们,有什么想法吗?

发布于 2015-10-02 17:53:32
无法访问子视图,因为父视图不是容器视图。来自可访问性编程指南中的使您的iOS应用程序可访问一节:
从可访问性的角度来看,自定义视图要么是单个视图,要么是容器视图。单个视图不包含任何其他需要访问的视图。 另一方面,容器视图包含用户可以与之交互的其他元素。
为了使子视图可访问,父视图应该通过从UIAccessibility返回NO和实现UIAccessibilityContainer协议的方法来告诉-isAccessibilityElement它是一个可访问性容器。
发布于 2019-01-15 17:59:29
为我修复它的是检查√接口生成器中启用的“可访问性”框。

如果不能在IB中工作,请尝试将视图的isAccessibilityElement属性设置为true。
希望这能帮上忙!
发布于 2016-06-25 21:43:41
我在我的UITableView中也遇到了这个问题。我的单元格有一个containerView(UIView),它有子视图(TextView,UIButton.)和一个带有细胞的collectionView。
我尝试了接受的答案,但它没有工作。(UI记录器或手动代码不识别我的子元素)。但有时,当我触发一些刷新表的内容时,我发现UITest突然认出了我的子元素。
所以现在我知道如果tableView.reloadData无法找到我的子视图,我会调用来刷新视图,然后所有的问题都解决了。
无论如何,这只是一个解决办法,我希望苹果能够尽快修复它。
https://stackoverflow.com/questions/32801267
复制相似问题