【问题标题】:Reusing implementation of UITextField Delegate methods重用 UITextField 委托方法的实现
【发布时间】:2014-06-12 23:02:00
【问题描述】:

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

我的想法是继承 UITextField 并将委托设置为自身。然后按照我希望的方式实现委托方法。在这种情况下,我可以在任何地方使用子类 UITextField,并且委托方法将实现一次,因此我不必在每个 VC 中分别实现它们。

但是!

委托用于与另一个对象进行通信以将一些东西委托给该对象。将委托设置为自身是没有意义的。

我应该如何实现一次委托方法,所以每次我使用 Interface Builder 放置 UITextField 并将类设置为自定义 UITextField 时,文本字段将根据实现的委托方法运行。

感谢大家的帮助

【问题讨论】:

  • 一个 UIView 不应该是它自己的委托。使 UIViewController 实现委托协议,并在需要时将其分配为委托,正如@Emilie 所建议的那样
  • 好的,谢谢,我会努力的。

标签: ios uitextfield uitextfielddelegate


【解决方案1】:

我的解决方案可能不是最佳的,我仍在寻找更好的解决方案,但没有人回答你,我们开始吧:

UIView 永远不应该试图“控制”任何东西:它只是一个视图。这就是为什么通过我的项目,我所有的UIViewController 都继承自基础UIViewController (BaseViewController)。这个BaseViewController 拥有所有UITextField 委托代码,所以每当UIViewControllerUITextField 委托设置为selfBaseViewController 就会处理它。因为我希望我的BaseViewController 能够控制我所有视图的UIScrollView 内容偏移量,所以我还有一个基类BaseView,我的所有UIViews 都继承了它,默认情况下具有UIScrollview

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2011-10-29
    • 1970-01-01
    • 2012-04-02
    • 2019-08-17
    • 1970-01-01
    相关资源
    最近更新 更多