如何在运行仅限iPhone的应用程序(非通用)的iPad上支持UIPickerView中的VoiceOver?

Ste*_*ser 7 accessibility uipickerview ios voiceover uiaccessibility

一般来说,我会查看Apple的UICatalog示例代码以获得基本的VoiceOver支持,但在示例代码中看起来似乎有对UIPickerViews的VoiceOver支持.我是否需要在某处提供accessibilityLabel方法来添加VoiceOver支持?我试图实现UIPickerViewAccessibilityDelegate方法,但是仅通过我的选择器视图读取标签,而不是提示向上或向下滑动以更改值.

我的选择器视图也设置为UITextField的输入视图.所以我不确定这是否相关.

更新:https: //github.com/stevemoser/VoiceOverPicker

我创建了一个展示问题的示例项目.在该示例中,显示了正常的选择器视图和文本字段.还有一个选择器设置为textfield的输入视图属性.我似乎无法通过在使用VoiceOver时点击它来激活任一选择器.虽然我可以通过屏幕上的视图滑动(左和右)来激活任何一个.有任何想法吗?

更新2:看起来如果该应用程序是在iPhone上运行的iPhone应用程序或在iPad上运行的iPad应用程序,它可以正常工作但如果它是在iPad上运行的仅iPhone应用程序,则点击以选择UIPickerView不起作用.

cep*_*rry 2

您是否只是使用每行的标题(而不是自定义视图)来做一个普通的 UIPickerView ?如果是这样,那么您不需要做任何事情。

您提到 VoiceOver 正确读取了每行上的标签,因此我们知道 UIPickerView 正确地将 isAccessibilityElement 设置为 YES。它还可以正确读取可访问性标签。

您是否有可能在选择器有机会读取accessibilityHint之前与它进行交互?(为了其他人的利益,accessibilityHint 是 Steve 在他的问题中提到的“用一根手指滑动或向下调整值”。)或者也许某些通知在提示有机会被读取之前正在更改 VoiceOver 焦点?