使用UIAccessibilityFocus协议,假设您覆盖accessibilityElementDidBecomeFocused()和accessibilityElementDidLoseFocus(),您将能够在Voiceover运行时跟踪可访问元素何时获得或失去焦点。这似乎适用于所有字段类型 - UIButton,UILabel,UISwitch,UITextView等 - 除了UITextField。当画外音焦点打开(或离开)UITextField时,这些功能根本就不会被调用。只是想知道它是否是一个bug或其他东西。谢谢!
答案 0 :(得分:1)
这是一个功能,让我解释一下。
如果没有启用VoiceOver,iOS中就没有焦点概念。除了UITextField的情况。 UITextFields专注于#34; (无论有没有VoiceOver,再次专注于iOS中没有画外音的概念)。对于其他元素,情况并非如此。他们没有" gainFocus"等价物。获得焦点的UIButton只有从可访问性的角度来看才有意义。因此,他们为这些类添加了特殊的accessibilityElementDidGainFocus调用。它们是从UITextFields中专门删除的,因为该调用在逻辑上等同于该类已存在的调用,与Accessibility API无关。