我正在尝试实现一个可重用的UITextFieldDelegate
类,如下所示:
class CustomTextFieldDelegate : NSObject, UITextFieldDelegate
正确实施所有委托协议方法。
在controller
中,我将delegate
分配给UITextField
textField.delegate = CustomTextFieldDelegate()
问题是没有调用任何委托函数。但是,当我从控制器实现委托协议时,事情正常
class CustomTableViewController: UITableViewController, UITextFieldDelegate
任何想法发生了什么?
答案 0 :(得分:4)
如果您希望在整个项目中重复使用CustomTextFieldDelegate,则应使用Singleton实例;
textField.delegate = CustomTextFieldDelegate.sharedInstance
并且班级改变
class CustomTextFieldDelegate : NSObject, UITextFieldDelegate {
static let sharedInstance:CustomTextFieldDelegate = CustomTextFieldDelegate();
func textFieldDidBeginEditing(textField: UITextField) {
NSLog("textFieldDidBeginEditing ...");
}
//... other methods
} //F.E.