Ios8 UIAccessibilityFocus协议不工作

Ios8 UIAccessibilityFocus协议不工作,ios8,accessibility,ios8.1,voiceover,uiaccessibility,Ios8,Accessibility,Ios8.1,Voiceover,Uiaccessibility,我想知道用户何时将焦点从可访问性元素移开。我已尝试重写accessibilityElementDidLoseFocus()和AccessibilityElementDibEcomeFocus()方法,但在VoiceOver辅助功能模式下导航到其他元素时,似乎没有调用这些方法。我不知道怎么了。我还需要做些什么来激活这些方法吗 override func accessibilityElementDidBecomeFocused() { println("become focused") }

我想知道用户何时将焦点从可访问性元素移开。我已尝试重写
accessibilityElementDidLoseFocus()
AccessibilityElementDibEcomeFocus()
方法,但在VoiceOver辅助功能模式下导航到其他元素时,似乎没有调用这些方法。我不知道怎么了。我还需要做些什么来激活这些方法吗

override func accessibilityElementDidBecomeFocused() {
    println("become focused")
}

override func accessibilityElementDidLoseFocus() {
    println("lose focus")
}
当前的开发是在iOS 8.1上,使用Swift。

尝试使用:

  isAccessibilityElement = true 
此属性的默认值为false,除非接收方是标准UIKit控件,在这种情况下,该值为true


辅助应用程序只能获取由可访问性元素表示的对象的信息。因此,如果实现了残疾用户可以访问的自定义控件或视图,请将此属性设置为true。这种做法的唯一例外是视图仅用作其他应可访问项目的容器。这样的视图应该实现UIAccessibilityContainer协议,并将此属性设置为false。

在最初的问题出现2年多之后,但我希望这会有所帮助

出现此问题是因为您可能已在视图控制器中重写了这些方法,您应该直接在可访问性元素中实现代码


您可以创建一个类来定义可访问性元素,或者只是在放置
UIAccessibilityFocus
重写函数的地方对其超类进行扩展。

您试图以这种方式跟踪哪些类型的元素(按钮、自定义视图等)?实际上是任何类型的元素。可以导航到的所有元素,从导航栏到按钮。还有什么我应该执行的遗漏吗?我在画外音模式下尝试过,但当我滑动到另一个元素(导航栏按钮,按钮)上时,这些方法似乎没有被调用。是否确实已在可访问性元素上重写了这些方法?你看到画外音光标突出显示了吗?嗨,贾斯汀,突出显示是什么意思?目前,这些元素在画外音模式下被“装箱”(画外音激活时的默认外观)。如果你是这么问的话,我看不到打印行。所以我认为这些方法没有被覆盖,但我不知道为什么:/