如何在我的自定义控件上定义自定义可发送操作(可以与InterfaceBuilder@Xcode4连接)?
例如,UIButton可以通过许多事件调用操作。(摸摸里面,摸外面.我们可以通过接口生成器将这些事件与IBActions连接起来。
请不要谈论委托模式。我个人认为,实现多个协议会让我们感到恶心,很难理解对象的核心角色。因为选择器名称是由发件人而不是由控制器定义的。我想使用更易读的方法名称,这是更清楚的主题控制器。
所以,我讨厌使用委托模式作为基本的底层结构,除非我开发了非常简单的Hello应用程序。
我认为定义一个NSInvocation*字段为IBOutlet很好。因为它同时提取目标和选择器。但是Interface目前还没有意识到这一点。
那么,如何定义IB可识别的可发送操作。
PS。我知道扩展CustomControl的NSControl可以只调用单个目标操作。我想要多个可发送的事件,我想让我的对象不查看或控制。(我指的是重量轻的物体)
发布于 2011-06-01 10:24:18
您应该子类UIControl并定义您自己的控件事件。因为UIControlEvent是一个NSInteger,所以您可以为它分配自己的枚举值。您可以拥有多达8个控制事件(根据documentation)
enum {
ControlEvent1 = 0x0F000000 << 0,
...
ControlEvent8 = 0x0F000000 << 7
};添加和移除目标操作与其他控件相同。可以使用[control sendActionsForControlEvents:ControlEvent1]触发控制事件。
https://stackoverflow.com/questions/6199175
复制相似问题