菜鸟教程小白 发表于 2022-12-12 15:07:19

iOS 辅助功能 - 有没有办法判断 VoiceOver 何时改变焦点?


                                            <p><p>我想在 VoiceOver 处于事件状态时每次聚焦不同的元素时调用一个方法。我希望有一些 <code>UIAccessibilityNotification</code> 为此,但我似乎找不到任何。</p>

<p>最终,我的目标是在阅读无障碍标签之前添加一个附加条件。例如,与说(默认情况下)“如果 <code>UIButton</code> 成为焦点:读取标签”相反,我希望能够说“当 <code>UIButton</code> 成为焦点并且<code>UIButton</code>的背景色为蓝色:读取标签”。</p>

<p>所以我的问题是:如何在阅读标签之前添加附加条件,或者在新元素成为焦点时接收通知?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您无法明确判断用户何时移动 VoiceOver 光标(就像您无法判断有视力的用户在看哪里一样)。</p>

<p>对于您想要的行为,您有两种选择:</p>

<ol>
<li>只要其他条件发生变化,就将按钮的 <code>accessibilityLabel</code> 设置为适当的值。</li>
<li><p>子类 <code>UIButton</code> 并覆盖它的 <code>accessibilityLabel</code> getter 方法:</p>

<pre><code>- (NSString *) accessibilityLabel {
    if (SOME_CONDITION) {
      return @&#34;Hooray!&#34;;
    } else {
      return @&#34;Womp womp&#34;;
    }
}
</code></pre> </li>
</ol>

<p>如果您需要完全禁用某个项目,而不是返回 <code>nil</code> 或空白字符串,则应将其 <code>accessibilityElementsHidden</code> 属性设置为 <code>YES</code> .</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 辅助功能 - 有没有办法判断 VoiceOver 何时改变焦点?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/29762613/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/29762613/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 辅助功能 - 有没有办法判断 VoiceOver 何时改变焦点?