2014-06-12 66 views
0

在我的应用程序中,我想多次使用UITextField。对于每个UITextField,我想实现UITextFieldDelegate方法(didEndEditing,didBeginEditing,应该...)。重用UITextField委托方法的实现

我的想法是继承UITextField并将委托设置为自己。然后按照我希望的那样实施委托方法。在这种情况下,我可以在任何地方使用子类UITextField,并且委托方法将被执行一次,所以我不需要分别在每个VC中实现它们。

但是!

委托使用与另一个对象的通信将某些内容委托给该对象。将委托设置为自己没有意义。

我应该如何实现委托方法ONCE,因此每次使用Interface Builder放置UITextField并将类设置为自定义UITextField时,文本字段将按照实现的委托方法行事。

感谢您的帮助

+0

UIView不应该是它自己的代理。让一个UIViewController实现委托协议,并根据@Emilie –

+0

的建议,在需要的时候将其指定为委托。好的,谢谢,我将就此开展工作。 – michel

回答

2

我的解决方案可能不是最优的,我还在寻找一个更好的,但一直没有人接你,在这里我们去:

一个UIView千万别试图“控制”任何东西:这只是一个观点。这就是为什么通过我的项目,我的所有UIViewController继承自基地UIViewControllerBaseViewController)。此BaseViewController拥有所有UITextField委托代码,因此无论何时UIViewControllerUITextField委托人设置为selfBaseViewController都会处理它。因为我希望我的BaseViewController能够控制我的所有视图的UIScrollView内容偏移量,所以我也有一个基类BaseView,这些基类都是我的UIViews继承的,默认情况下为UIScrollview