我想是加入的applicationDidFinishLaunching:进入我的可可委托。 我将如何做到这一点? 在iPhone SDK中的applicationDidFinishLaunching已经在应用程序委托,但让我的Mac应用程序时,我注意到有没有。
最好的祝福,
凯文
我想是加入的applicationDidFinishLaunching:进入我的可可委托。 我将如何做到这一点? 在iPhone SDK中的applicationDidFinishLaunching已经在应用程序委托,但让我的Mac应用程序时,我注意到有没有。
最好的祝福,
凯文
作为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和打开调试器控制台。 如果你做的一切都是正确的,我没有忘记什么,你应该可以看到日志消息出现。
- (id)init
{
if (self = super init]) {
[NSApp setDelegate:self];
}
return self;
}
你也可以这样做在Interface Builder; 从MainMenu.xib“文件的所有者”,只需拖动“代表”出口到对象。 你可能要考虑使用-awakeFromNib
虽然代替。
是你完全缺少应用程序委托文件? 它好像有一个在Xcode的安装脚本安装最新的项目模板在错误的文件夹中的错误(至少为3.2.1雪豹)。 对于“Cocoa应用程序”项目年长的模板不包含委托文件。
我已经解释了什么我发现(我如何“固定”它)在被称为博客中固定Xcode项目模板 。
欢呼声中,格雷厄姆