我有 iPhone OS 开发背景。我现在正在尝试为 OSX 编写应用程序,但我不明白 OSX 上的 cocoa 在哪里决定程序的控制权。
我可以看到main函数,但是程序控制从哪里来呢?举例来说,我想在应用程序完成启动后以编程方式创建一个带有 NSView
的窗口 - 我该怎么做?我可以看到没有创建应用程序委托(delegate),在 iPhone OS 中我会等待 -(void) applicationDidFinishLaunching:(UIApplication *)application
被调用的方法。我真的不想使用 Interface Builder 或 NIB 文件来设置我的窗口/ View 。我该怎么办?
最佳答案
它与 iPhone 非常相似。在您的应用程序 Controller 类中,重写 NSApplication 的 applicationDidFinishLaunching
委托(delegate)方法。如果您使用标准 Xcode 项目模板,您的应用程序 Controller 已在 Interface Builder MainMenu.xib 中实例化,并设置为应用程序的委托(delegate);如果没有,您需要将其拖到那里并自行设置这些连接。
更一般地说,OS X 应用程序在 main 方法中开始其生命周期,Cocoa 将自动设置应用程序的运行循环并加载您在 Info.plist 中指定的 .xib 文件。该 xib 通常是实例化应用程序 Controller 的地方。通过重写其中一种方法,例如 +initialize
、-init
、-applicationWillFinishLaunching
或 -applicationDidFinishLaunching
(全部有细微不同的行为)您可以加载其他 Controller 和 Nib 以及将来与运行循环交互的对象,这样您就可以在启动方法完成后继续执行代码。
关于iphone - 从 iPhone OS 到 OSX 上的 cocoa,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2998435/