gpt4 book ai didi

objective-c - 多播委托(delegate) - 多个类从 iOS 中的 UI 控件接收通知

转载 作者:可可西里 更新时间:2023-11-01 04:27:30 26 4
gpt4 key购买 nike

我了解 UITextField 等 UI 控件通过其委托(delegate)通知客户端交互/事件,委托(delegate)被定义为支持所需协议(protocol)的类。

我经常发现自己希望在多个类中接收 UI 事件的通知,因此希望支持多播。例如,为 UI 控件指定多个委托(delegate)。我很确定没有支持此功能的 iOS 框架功能。我想知道是否有人想出一个像样的解决方案来解决这个问题?

最佳答案

有一个 Cocoa 功能可以让您相对轻松地构建多播委托(delegate) - 它是 Message Forwarding系统内置于框架中。

创建一个覆盖 forwardInvocation: 的类,并返回对象的实例而不是委托(delegate)。这就是有时称为 “蹦床对象” 的东西。 forwardInvocation: 实现中的逻辑现在可以决定哪些“真实”对象应该接收消息,并将调用转发给其中的一个或多个对象。

作为对这个已接受答案的更新,我在这里创建了自己的多播委托(delegate)实现:

http://www.scottlogic.co.uk/blog/colin/2012/11/a-multicast-delegate-pattern-for-ios-controls/

关于objective-c - 多播委托(delegate) - 多个类从 iOS 中的 UI 控件接收通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12349865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com