Chr*_*dez 3 events uitextfield ios swift
我目前有4个UITextField
@IBOutlet weak var fNameTextField: UITextField!
@IBOutlet weak var lNameTextField: UITextField!
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var phoneTextField: UITextField!
我想跟踪他们的各种事件:
[UIControlEvents.EditingChanged, UIControlEvents.EditingDidBegin, UIControlEvents.EditingDidEnd ]
但是我不希望有3个事件单独的事件处理程序,所以我创建了一个这样的函数.这个函数很好地告诉我哪个UITextField触发了一个事件,但它没有告诉我哪个事件被触发:
fNameTextField.addTarget(self, action: "onChangeTextField:", forControlEvents: UIControlEvents.AllTouchEvents)
lNameTextField.addTarget(self, action: "onChangeTextField:", forControlEvents: UIControlEvents.AllTouchEvents)
emailTextField.addTarget(self, action: "onChangeTextField:", forControlEvents: UIControlEvents.AllTouchEvents)
phoneTextField.addTarget(self, action: "onChangeTextField:", forControlEvents: UIControlEvents.AllTouchEvents)
func onChangeTextField(sender:UITextField){
    switch(sender){
        case fNameTextField:
            print("First Name")
        case lNameTextField:
            print("Last Name")
        case emailTextField:
            print("E-mail")
        case phoneTextField:
            print("Phone")
        default: break
    }
}
如何打印发件人姓名和触发事件的名称(例如:.EditingDidEnd,.EditingDidEnd,.EditingDidEnd)?
理想情况下,我不想编写多个事件处理程序,我更喜欢单个函数.
像这样的东西:
func onChangeTextField(sender:UITextField){
    switch(sender.eventTriggerd){
        case UIControlEvents.EditingChanged:
            println("EditingChanged")
        case UIControlEvents.EditingDidBegin:
            println("EditingDidBegin")
        case UIControlEvents.EditingDidEnd:
            println("EditingDidEnd")
        default: break
    }
}
| 归档时间: | 
 | 
| 查看次数: | 2148 次 | 
| 最近记录: |