如果某个元素被画外音聚焦,我会尝试获取信息。所以我重写了accessibilityElementDidBecomeFocused
方法,但它从未被调用。我忘了什么吗?
override func viewDidLoad() {
super.viewDidLoad()
viewArray.append(UIView())
viewArray.append(UIView())
viewArray[0].frame = CGRectMake(20, 210, 100, 100)
viewArray[0].isAccessibilityElement = true
self.view.addSubview(viewArray[0])
viewArray[1].frame = CGRectMake(220, 220, 100, 100)
viewArray[1].isAccessibilityElement = true
self.view.addSubview(viewArray[1])
}
//never called
override func accessibilityElementDidBecomeFocused(){
println("accessibilityElementDidBecomeFocused")
}
最佳答案
它没有被调用,因为您的视图控制器不是可访问性元素。您应该在自定义视图子类中重写它。
只是澄清一下:当一个可访问性元素成为焦点时,您不会得到那个回调,相反,当它成为强制时,元素本身会得到那个回调。
之所以可以重写它(UIViewController实现它的原因)是因为它是一个非正式协议,是在NSObject上实现的一个类别,这意味着每个NSObject都实现了这些方法。
关于ios - accessibilityElementDidBecomeFocused不要被调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29237146/