Ios 在swift中未第二次触发EditingDidBegen事件

Ios 在swift中未第二次触发EditingDidBegen事件,ios,swift,Ios,Swift,使用editingdidbeagin事件触发器时遇到问题。我有uitextfield我在编辑时触发了,所以我必须尝试显示datePicker。它第一次能够触发事件时显示了日期选择器。选择datePicker后,我再次尝试编辑textField。它触发了这一事件。因此,它显示的是键盘,而不是日期选择器这个怎么样: 在视图控制器上实施UITextFieldDelegate协议: class ViewController: UIViewController, UITextFieldDelegate {

使用
editingdidbeagin
事件触发器时遇到问题。我有
uitextfield
我在编辑时触发了,所以我必须尝试显示
datePicker
。它第一次能够触发事件时显示了
日期选择器
。选择
datePicker
后,我再次尝试编辑
textField
。它触发了这一事件。因此,它显示的是键盘,而不是日期选择器

这个怎么样:

在视图控制器上实施UITextFieldDelegate协议:

class ViewController: UIViewController, UITextFieldDelegate { ...
确保视图控制器作为情节提要中UITextField的代理连接

然后,实现textFieldShouldBeginEditing功能:

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    print("show date picker")
    return false
}
返回false意味着文本字段将永远不会开始编辑,因此可以显示日期选择器


上面的代码将为委托给该视图控制器的每个UITextField上的每次点击显示日期选择器。如果您想要更好的控制,那么您需要连接一个引用出口,并签入textfield shouldBeginediting以查看它是否是正确的文本字段。或者您可以使用标记(ugh)。

请显示您尝试过的代码,这将更有助于理解您尝试过的内容。@IBAction func选择ExpireDate(发件人:UITextField){textFieldShouldReturn(self.ExpireDate);调用\u date\u picker;}