iphone - 从 iPhone OS 到 OSX 上的 cocoa

标签 iphone macos cocoa

我有 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/

相关文章:

macos - 取消嵌入 NSTableView

linux - 如何将 docker 镜像指向我的 .m2 目录,以便在 mac 上的 docker 中运行 maven?

objective-c - 来自 JSON 的 RestKit 对象映射

ios - 如何在 iOS 中将所有 UIView 从左移到右? ( objective-C )

ios - 如何将文件更新到 QuickBlox iOS 中的内容模块

iphone - 地址簿检索手机、工作和 iPhone 电话号码

iPhone NSURL 获取最后重定向的 url

macos - Mac OS X 是否有 virt-manager 替代品?

objective-c - NSOutlineView 中的 NSButton 操作未被调用?

iphone - NSXMLParser的parse方法是异步的吗