UIPickerView accessiblityLabelForComponent 未被调用

izi*_*461 5 uipickerview uikit ios swift

我正在尝试为UIPickerView组件设置可访问性标签,但从未调用过委托方法。更重要的是,UIInspector 显示pickerView 不可访问,但它实际设置了标签。

数据源/委托方法被触发。只有UIAccessibilityDelegate不是。

在 xcode 10.1 iOS 12.1 模拟器上测试

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate, UIPickerViewAccessibilityDelegate {

    @IBOutlet weak var pickerView: UIPickerView!

    override func viewDidLoad() {
        super.viewDidLoad()
        pickerView.isAccessibilityElement = true
        pickerView.accessibilityLabel = "TESTAccLabel"
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return 5
    }

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 2
    }

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return "\(component) - \(row)"
    }

    func pickerView(_ pickerView: UIPickerView, accessibilityLabelForComponent component: Int) -> String? {
        return "TODO:JS"
    }
}
Run Code Online (Sandbox Code Playgroud)