【发布时间】:2015-12-03 22:12:35
【问题描述】:
我有一个带有 PickerView 的 inputView 的 UITextfield。我想实现这一点,当用户双击 UITextfield 时,pickerView 会像默认一样以模态方式显示,并且可访问性的焦点从文本字段更改为 pickerView。这就是我现在的做法:
func textFieldDidBeginEditing(textField: UITextField) {
let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.65 * Double(NSEC_PER_SEC)))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.quantityPicker)})
}
当用户双击 textField 并在延迟 0.65 秒后发送 UIAccessibilityLayoutChangedNotification 以专注于 pickerView 时,只会调用此委托。
那么问题是:
-
我这里使用了延迟等待pickerView弹窗动画完成,但是如果能知道pickerView动画在某处完成并放上去会好很多
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self.quantityPicker)
那里。那么是否有任何委托或其他简单的方法可以知道 pickerView 已准备好使用?
- 当我双击 textField 时,它会先读取 textField 的内容,直到被拦截。有没有办法禁用它以使它像:当我单击按钮时,读取accessibilityLabel、特征、提示等,当我双击它时,它什么也不读,只是做它的工作。
【问题讨论】:
标签: ios uitextfield accessibility uipickerview voiceover