What is the use of delegate ? where ? when?
- 监听那些不能通过addTarget监听的事件!
- 主要用来负责在两个对象之间,发生了某些事件时,来传递消息和数据
- 代理设计模式,是在oc中使用最为广泛的一种设计模式
- 例如UITextField -> UIControl , 不能添加addTarget ,可以使用代理,让viewController监听textField发生的变化。
how to use delegate ? 代理实现步骤
- 父控件成为子控件的代理,父亲(ViewController)成为儿子(UITextField)的代理
- conform protocol , eg :
ViewController : UITextFieldDelegate
- implement protocol
//conform protocol 遵守协议
class ViewController: UIViewController ,UITextFieldDelegate
@IBOutlet weak var textField: UITextField!
// implement protocol 实现协议
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
println("\(range),\(string)");
return true
}
}