dre*_*yln 11 cocoa-touch objective-c uibutton uiview
我已经创建了UIView的子类,我想让它发布在Interface Builder(实际上是Xcode4)中显示的自定义事件,就像右键单击UIButton之类的控件在"已发送事件"区域中有一堆事件一样在Xcode 4设计师的控件上.我知道我可以使用委托(通过协议)或通知(通过UINotificationCenter)让对象使用我的自定义视图知道某些事情何时发生,但我想知道"目标 - 行动机制"(描述于可可基础指南(Cocoa Fundamentals Guide)适合/期望/可能使用并与Xcode设计器集成.这个方法主要来自.NET背景,似乎与.NET事件模型密切相关,对我来说最有意义.
有UIControlEventApplicationReserved,它为您提供应用程序可以使用的一系列事件标识符.但是,我认为没有任何方法可以告诉Interface Builder有关应用程序定义的事件,因此您不会像在UIControl的标准事件中那样获得IB中事件的相同支持.相反,您必须在代码中为每个应用程序定义的事件指定目标和操作.(如果我在这一点上弄错了,请有人纠正我.)这一点都不困难,但有点不同.
执行此操作的一个简单方法是扩展,UIControl而不是UIView允许您将目标添加到所有默认事件(与UIButton等相同)。
注意:为了让我的自定义UIControl处理事件而不是我分层的控件,我必须确保userInteractionEnabled = NO在所有分层控件上都设置了该事件。