具有多个委托的 UITextfield

Posted

技术标签:

【中文标题】具有多个委托的 UITextfield【英文标题】:UITextfield with multiple delegates 【发布时间】:2017-10-27 08:52:54 【问题描述】:

我正在使用JJMaterialTextField 自定义 UITextField 类。它有一些用于动画占位符等的代表。我也想为使用该类的 UIViewController 使用其他一些代表。如果我在 UIViewController 中为 JJMaterialTextField 类对象写下 delegate.self,我不会执行它自己的委托,它只执行 UIViewController 中的委托方法。但我希望它应该执行两种委托方法。我该怎么做?谢谢。

【问题讨论】:

你能把你的代码放在这里吗? 【参考方案1】:

在视图控件中使用委托,改为使用此

[textField addTarget:self 
              action:@selector(textFieldDidChange:) 
    forControlEvents:UIControlEventEditingChanged];

它的行为类似于委托,它会在文本更改时触发,还有其他选择器 textFieldDidBegin.. 等。 这样你就不会打断代表了。

【讨论】:

【参考方案2】:

如果您需要多个代表,这通常被认为是一个坏主意。代表们都是1-1的关系。

请在此处阅读答案,它将为您提供有关如何处理观察者或通知的指示

Multiple Delegates in ios

如果您不想遵循上述建议,请查看第一个和第二个答案,了解如何做到这一点,基本上创建一个包含对多个委托的引用的对象,然后您可以查看它们并发布以这种方式委托方法:

Delegation to multiple objects

【讨论】:

以上是关于具有多个委托的 UITextfield的主要内容,如果未能解决你的问题,请参考以下文章

具有多个委托的 UITextfield

在具有委托的视图控制器之间传递多个值

iphone:uitextfield,具有相同委托的多个文本字段?

多播委托的特点

关于C#委托应用与总结

如何在 C# 中使用 委托