在我的应用程序中,我想多次使用UITextField。对于每个UITextField,我想实现UITextFieldDelegate方法(didEndEditing,didBeginEditing,应该......)。
我的想法是将UITextField子类化并将委托设置为自身。然后实现委托方法,因为我希望它们被实现。在这种情况下,我可以在任何地方使用子类UITextField,并且委托方法将实现一次,因此我不必在每个VC中单独实现它们。
BUT!
委托使用与另一个对象的通信来将一些东西委托给该对象。将委托设置为自己是没有意义的。
我应该如何实现委托方法ONCE,所以每次使用Interface Builder放置UITextField并将类设置为自定义UITextField时,textfield将根据实现的委托方法运行。
感谢您的帮助
答案 0 :(得分:2)
我的解决方案可能不是最优的,我仍然在寻求更好的解决方案,但是没有人回答你,我们走了:
UIView
永远不应该试图"控制"任何事情:它只是一个观点。这就是为什么通过我的项目,我的所有UIViewController
都从基地UIViewController
(BaseViewController
)继承。此BaseViewController
包含所有UITextField
委托代码,因此只要UIViewController
将UITextField
委托设置为self
,BaseViewController
就会处理它。因为我希望我的BaseViewController
能够控制我所有观看的UIScrollView
内容偏移量,所以我还有一个基类BaseView
,我的所有UIViews
都在继承,默认情况下为UIScrollview
。