首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在我的自定义控件上定义自定义可发送操作?(可在IB中识别)

如何在我的自定义控件上定义自定义可发送操作?(可在IB中识别)
EN

Stack Overflow用户
提问于 2011-06-01 09:41:36
回答 1查看 184关注 0票数 0

如何在我的自定义控件上定义自定义可发送操作(可以与InterfaceBuilder@Xcode4连接)?

例如,UIButton可以通过许多事件调用操作。(摸摸里面,摸外面.我们可以通过接口生成器将这些事件与IBActions连接起来。

请不要谈论委托模式。我个人认为,实现多个协议会让我们感到恶心,很难理解对象的核心角色。因为选择器名称是由发件人而不是由控制器定义的。我想使用更易读的方法名称,这是更清楚的主题控制器。

所以,我讨厌使用委托模式作为基本的底层结构,除非我开发了非常简单的Hello应用程序。

我认为定义一个NSInvocation*字段为IBOutlet很好。因为它同时提取目标和选择器。但是Interface目前还没有意识到这一点。

那么,如何定义IB可识别的可发送操作。

PS。我知道扩展CustomControl的NSControl可以只调用单个目标操作。我想要多个可发送的事件,我想让我的对象不查看或控制。(我指的是重量轻的物体)

EN

回答 1

Stack Overflow用户

发布于 2011-06-01 10:24:18

您应该子类UIControl并定义您自己的控件事件。因为UIControlEvent是一个NSInteger,所以您可以为它分配自己的枚举值。您可以拥有多达8个控制事件(根据documentation)

代码语言:javascript
复制
enum {
    ControlEvent1 = 0x0F000000 << 0,
    ...
    ControlEvent8 = 0x0F000000 << 7
};

添加和移除目标操作与其他控件相同。可以使用[control sendActionsForControlEvents:ControlEvent1]触发控制事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6199175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档