Swift 可重复使用的 UITextFieldDelegate

Swift reusable UITextFieldDelegate

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

class CustomTextFieldDelegate : NSObject, UITextFieldDelegate

所有委托协议方法都已正确实现。

controller中,我将delegate分配给UITextField

textField.delegate = CustomTextFieldDelegate()

问题是 none 的委托函数被调用。但是,当我从控制器实现委托协议时,一切正常

class CustomTableViewController: UITableViewController, UITextFieldDelegate

知道发生了什么事吗?

如果您想在整个项目中重用 CustomTextFieldDelegate,您应该使用 Singleton 实例;

textField.delegate = CustomTextFieldDelegate.sharedInstance

和 class 变化

class CustomTextFieldDelegate : NSObject, UITextFieldDelegate {

    static let sharedInstance:CustomTextFieldDelegate = CustomTextFieldDelegate();

    func textFieldDidBeginEditing(textField: UITextField) {
        NSLog("textFieldDidBeginEditing ...");
    }
   //... other methods
} //F.E.