应用委托 - 可可(Application Delegate - Cocoa)

2019-08-03 15:24发布

我想是加入的applicationDidFinishLaunching:进入我的可可委托。 我将如何做到这一点? 在iPhone SDK中的applicationDidFinishLaunching已经在应用程序委托,但让我的Mac应用程序时,我注意到有没有。

最好的祝福,

凯文

Answer 1:

作为Xcode的3.2,在Mac应用程序模板还配备了一个应用程序的代理,已经连接,具有这样的方法。

要在Xcode 3.2之前创建一个项目对此进行设置,为您的委托是实例的新类。 我通常命名我的“的AppDelegate”。 您可以通过在类组右击并选择“添加文件”这样做,那么挑选可可NSObject的子类文件模板。

打开您刚刚创建的标题(AppDelegate.h)。 给它任何你想要的实例变量。 然后打去对口。 这需要你来实现文件(AppDelegate.m)。 添加您applicationDidFinishLaunching:这里实例方法。 不像在iPhone上,这是一个通知处理程序的方法,所以它需要一个NSNotification的实例,而不是一个的NSApplication实例。

现在把它挂。 在资源组,打开MainMenu.nib中。 从库窗口拖动对象到顶层笔尖窗口(一个在它的图标,如文件的所有者和急救员)。 选择刚才创建的对象并打开身份检查。 设置对象的类AppDelegate中,匹配您在Xcode中使用的名称。 对文件的所有者单击鼠标右键,并从其拖动delegate出口的新对象。

在Xcode中,添加的NSLog语句您applicationDidFinishLaunching:方法。 命中全部保存,然后生成并前往。 切换回Xcode和打开调试器控制台。 如果你做的一切都是正确的,我没有忘记什么,你应该可以看到日志消息出现。



Answer 2:

- (id)init
{
    if (self = super init]) {
        [NSApp setDelegate:self];
    }
    return self;
}

你也可以这样做在Interface Builder; 从MainMenu.xib“文件的所有者”,只需拖动“代表”出口到对象。 你可能要考虑使用-awakeFromNib虽然代替。



Answer 3:

是你完全缺少应用程序委托文件? 它好像有一个在Xcode的安装脚本安装最新的项目模板在错误的文件夹中的错误(至少为3.2.1雪豹)。 对于“Cocoa应用程序”项目年长的模板不包含委托文件。

我已经解释了什么我发现(我如何“固定”它)在被称为博客中固定Xcode项目模板 。

欢呼声中,格雷厄姆



文章来源: Application Delegate - Cocoa