我有一系列表单字段(UITextField),它们的“完成”操作(我更改为“下一步”)能够将firstResponder设置为下一个字段,这样当用户是填写他们可以点击旁边的字段以继续进行:
fields[i-1].addTarget(fields[i], action: "becomeFirstResponder", forControlEvents: UIControlEvents.EditingDidEndOnExit)
但是,在表单的中间我有一个带有datePicker的字段作为inputView,当用户选择日期时我想要相同的功能:
[![在此处输入图像说明] [1]] [1]
所以基本上,用户会选择一个日期,并且.EditingDidEndOnExit会触发,这将由上面的代码适当处理。
答案 0 :(得分:2)
我有类似的设置,但在inputAccessoryView
上有一个下一步按钮:
let nextButton = UIBarButtonItem(title: "Next", style: .Done, target: self, action: #selector(dismissPicker))
要模拟相关字段上的返回键EditingDidEndOnExit
事件,请致电sendActionsForControlEvents
:
func dismissPicker() {
pickerField.resignFirstResponder()
pickerField.sendActionsForControlEvents(.EditingDidEndOnExit)
}
答案 1 :(得分:1)
当用户旋转滚轮时,日期选择器会发出.ValueChanged
。因此,将其挂钩到您将该文本字段.EditingDidEndOnExit
挂钩到的任何内容。或者把它挂钩别的东西。但关键是你可以直接回复被更改的日期选择器。