根据我的理解,委派类总是从NSResponder
类继承的,而delegate
仅适用于从NSResponder
继承的类。NSMenu
直接继承自NSObject
,那么为什么我在outlets
中看到deletgate
呢?还是我误解了在界面生成器中ctrl单击对象后看到的选项?我看到Outlets
,Referencing outlets
,Received Actions
,那么这些是什么意思呢?如果这很重要的话,我使用的是Xcode 4(10.7.3)。
我不知道你在哪里看到的,但这是完全不正确的。委派只是一种模式,对可以实现委派的对象类型没有限制。
事实上,我们鼓励您在自己的类中使用委派模式。
NSMenu
将其delegate
属性声明为标头中的出口,这就是您在Interface Builder中看到它的原因。你可以在自己的代码中这样做:
@interface YourObject : NSObject {}
@property (weak) IBOutlet id delegate;
@end
在Interface Builder中,Outlets
指的是类头中定义的出口,您可以连接到其他对象。Referencing Outlets
和Referencing Actions
连接从其他对象到您的对象。