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!
Run Code Online (Sandbox Code Playgroud)
我想跟踪他们的各种事件:
[UIControlEvents.EditingChanged, UIControlEvents.EditingDidBegin, UIControlEvents.EditingDidEnd ]
Run Code Online (Sandbox Code Playgroud)
但是我不希望有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
}
}
Run Code Online (Sandbox Code Playgroud)
如何打印发件人姓名和触发事件的名称(例如:.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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2148 次 |
| 最近记录: |