【问题标题】:delegate member in NSMenuNSMenu 中的代表成员
【发布时间】:2012-02-25 02:00:05
【问题描述】:

据我了解,委托类是始终从NSResponder 类继承的类,而delegate 仅适用于从NSResponder 继承的类。 NSMenu 直接继承自NSObject,那么为什么我在outlets 中看到deletgate? 还是我误解了您在界面生成器中按住 ctrl 单击某个对象后看到的选项?我看到 Outlets, Referencing outlets, Received Actions ,那这些是什么意思? 我正在使用 Xcode 4 (10.7.3),如果这很重要的话。

【问题讨论】:

    标签: cocoa iboutlet nsresponder


    【解决方案1】:

    我不知道你在哪里看到的,但它完全不正确。委托只是一种模式,可以实现委托的对象类型没有限制。

    事实上,我们鼓励您在自己的类中使用委托模式。

    NSMenu 将其delegate 属性声明为标题中的插座,这就是您在 Interface Builder 中看到它的原因。您可以在自己的代码中执行相同的操作,如下所示:

    @interface YourObject : NSObject {}
    @property (weak) IBOutlet id delegate;
    @end
    

    在 Interface Builder 中,Outlets 指的是在您的类的标题中定义的插座,您可以连接到其他对象。 Referencing OutletsReferencing Actions 连接其他对象您的对象。

    【讨论】:

    • 现在回到苹果文档我意识到我错了,我没有读到“经常”这个词。 The delegating object is often a responder object—that is, an object inheriting from NSResponder in AppKit or UIResponder in UIKit—that is responding to a user event. The delegate is an object that is delegated control of the user interface for that event, or is at least asked to interpret the event in an application-specific manner.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多