将VoiceOver设置为忽略UITextField中的占位符文本?

kai*_*mcd 5 accessibility ios

我有一个UITextField供用户输入他们的电话号码。该字段的占位符文本为(XXX)XXX-XXXX。对于有视力的用户来说,这很好用,但是在启用VoiceOver的情况下,仅读出所有X听起来很糟糕。

我将accessibilityLabel设置为“电话号码”,将accessibilityHint设置为“要求10位电话号码”。现在,VoiceOver将读取标签,然后是占位符文本,然后是提示。是否可以将VoiceOver设置为忽略占位符文本?

kai*_*mcd 1

我可以通过删除标签然后在打开 VoiceOver 时更改占位符文本来解决此问题:

if UIAccessibilityIsVoiceOverRunning() {
    phoneNumberField.placeholder = "Phone Number"
}
Run Code Online (Sandbox Code Playgroud)

现在,它只会读取占位符文本,然后读取辅助功能提示。不过,我觉得这是一个有点棘手的解决方案。所以,如果有办法让 VoiceOver 忽略某些信息,那就更理想了。