Swift可重用的UITextFieldDelegate

时间:2015-10-08 03:26:15

标签: ios swift custom-controls uitextfielddelegate

我正在尝试实现一个可重用的UITextFieldDelegate类,如下所示:

class CustomTextFieldDelegate : NSObject, UITextFieldDelegate

正确实施所有委托协议方法。

controller中,我将delegate分配给UITextField

textField.delegate = CustomTextFieldDelegate()

问题是没有调用任何委托函数。但是,当我从控制器实现委托协议时,事情正常

class CustomTableViewController: UITableViewController, UITextFieldDelegate

任何想法发生了什么?

1 个答案:

答案 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.