我正在研究如何在我的应用中使用IKImageView
。我从Apple网站下载了以下演示。
我不明白的一件事是:这个项目只实现了一个Controller类。
@interface Controller : NSObject
{
...
我不明白它是如何工作的。如果我在XCode中创建一个新项目,它通常会生成一个实现AppDelegate
接口的NSApplicationDelegate
类。
我不知道我是否正确理解了这种机制。
以下步骤是否描述了它的工作原理?
1)在info.plist中,它指定主要包是MainMenu.xib
。
2)Window
被绑定到Controller
,如此
3)当应用程序启动时,它会从Windows
加载MainMenu.xib
,而Controller
类将从那里接管Windows交互。
答案 0 :(得分:1)
这是一个非常古老的示例代码。它早于为您生成应用程序委托的Xcode项目模板。 那时候,早期的Xcode和ProjectBuilder(它的旧名称) 让你做到这一点。
很多旧的示例代码都有这种情况。只要内容被nib加载启动,就会发生魔法,对象被实例化并连接
如果你有一个简单的控制器继承自NSObject并且它在你的主nib文件中有一个代理,它将被创建。如果您还将其代理作为委托连接到nib中的某个视图或控件,则所有这些都会发生。
从技术上讲,您不需要作为NSApplication对象委托的对象。但实际上这是一个很好的最佳实践,任何非平凡的应用程序都会有更多。
在应用程序启动时调用C函数NSApplicationMain()时会发生很多魔法。
如果日期书中的Cocoa在果壳中很好地涵盖了这一点,那么旧的和在很多方面都是如此。
答案 1 :(得分:1)
是的,你几乎描述了它是如何运作的以及它在做什么。
它依赖于NSApplicationDelegate
是一个非正式协议的事实,并且它没有声明Controller
符合它并正在使用NIB来启动应用程序