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.
我正在尝试实现一个可重复使用的 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.