Objective c 如何连接到nib中的自定义属性?

Objective c 如何连接到nib中的自定义属性?,objective-c,nib,xcode4.5,Objective C,Nib,Xcode4.5,我创建了一个自定义视图。它有一个委托,当它的某些按钮被按下时,它将通知该委托 我将其添加到视图控制器的viewDidLoad: self.myCustomView.delegate=self; 到目前为止一切正常 但这还不够酷。我想用表格视图的样式来做,这样我就可以从视图中直接拖动到文件的所有者,并且(ta da!)它是自动设置的。将IBOutlet关键字添加到类的delegate属性中: @property (nonatomic, assign) IBOutlet id<MyViewD

我创建了一个自定义视图。它有一个委托,当它的某些按钮被按下时,它将通知该委托

我将其添加到视图控制器的
viewDidLoad

self.myCustomView.delegate=self;
到目前为止一切正常


但这还不够酷。我想用表格视图的样式来做,这样我就可以从视图中直接拖动到文件的所有者,并且(ta da!)它是自动设置的。

IBOutlet
关键字添加到类的
delegate
属性中:

@property (nonatomic, assign) IBOutlet id<MyViewDelegate> delegate;
然后IB将只允许您将其连接到
MyView
。但协议或id更灵活

编辑:由于专注于IB,失去了一分

你说:

我创建了一个自定义视图。它有一个委托,当它的某些按钮被按下时,它将通知该委托

接收按钮事件是视图控制器的角色,但有时会使用委托对某些事件进行更细粒度的控制


通常,不要为作为主窗口的视图上的按钮按下创建代理,在这种情况下,您应该在ViewController中处理按钮事件。按钮位于父视图上,该视图将事件转发到响应程序链上(您仍然需要将它们连接到目标)。我并不是说你不应该在按钮按下时使用委托模式,但是,按钮有自己的连接来查看IB中的控制器,可以按照你的意愿进行拖放。但也有像你这样的情况是完全正确的。

太棒了。我这样做的原因是,按下的按钮不是父视图。向自定义视图添加子视图也有未定义的行为。你先前的回答是正确的。你的更新解释了为什么我不应该这样做也是很好的。
@property (nonatomic, assign) IBOutlet MyView *delegate;