iOS - 挂接到 .EditingDidEndOnExit
iOS - hook into .EditingDidEndOnExit
我有一系列表单字段 (UITextField),它们的 "Done" 操作(我更改为 "Next")能够将 firstResponder 设置为下一个字段,这样当用户填写字段时,他们可以单击下一步以继续前进:
fields[i-1].addTarget(fields[i], action: "becomeFirstResponder", forControlEvents: UIControlEvents.EditingDidEndOnExit)
但是,在表单的中间,我有一个带有 datePicker 作为 inputView 的字段,当用户 select 有一个日期时,我想要相同的功能:
[![在此处输入图片描述][1]][1]
所以基本上,用户会 select 一个日期,.EditingDidEndOnExit 会触发,这将由上面的代码适当处理。
当用户旋转轮子时,日期选择器发出 .ValueChanged
。因此,将它连接到您将该文本字段的 .EditingDidEndOnExit
连接到的任何内容。或者把它挂到别的东西上。但重点是您可以直接响应日期选择器的更改。
我有一个类似的设置,但 inputAccessoryView
上有一个下一步按钮:
let nextButton = UIBarButtonItem(title: "Next", style: .Done, target: self, action: #selector(dismissPicker))
为了模拟关联字段上的 return 键 EditingDidEndOnExit
事件,我调用 sendActionsForControlEvents
:
func dismissPicker() {
pickerField.resignFirstResponder()
pickerField.sendActionsForControlEvents(.EditingDidEndOnExit)
}
我有一系列表单字段 (UITextField),它们的 "Done" 操作(我更改为 "Next")能够将 firstResponder 设置为下一个字段,这样当用户填写字段时,他们可以单击下一步以继续前进:
fields[i-1].addTarget(fields[i], action: "becomeFirstResponder", forControlEvents: UIControlEvents.EditingDidEndOnExit)
但是,在表单的中间,我有一个带有 datePicker 作为 inputView 的字段,当用户 select 有一个日期时,我想要相同的功能:
[![在此处输入图片描述][1]][1]
所以基本上,用户会 select 一个日期,.EditingDidEndOnExit 会触发,这将由上面的代码适当处理。
当用户旋转轮子时,日期选择器发出 .ValueChanged
。因此,将它连接到您将该文本字段的 .EditingDidEndOnExit
连接到的任何内容。或者把它挂到别的东西上。但重点是您可以直接响应日期选择器的更改。
我有一个类似的设置,但 inputAccessoryView
上有一个下一步按钮:
let nextButton = UIBarButtonItem(title: "Next", style: .Done, target: self, action: #selector(dismissPicker))
为了模拟关联字段上的 return 键 EditingDidEndOnExit
事件,我调用 sendActionsForControlEvents
:
func dismissPicker() {
pickerField.resignFirstResponder()
pickerField.sendActionsForControlEvents(.EditingDidEndOnExit)
}