Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 接口生成器和Cocoa:在应用程序控制器类后面布线_Objective C_Cocoa_Macos_Interface Builder - Fatal编程技术网

Objective c 接口生成器和Cocoa:在应用程序控制器类后面布线

Objective c 接口生成器和Cocoa:在应用程序控制器类后面布线,objective-c,cocoa,macos,interface-builder,Objective C,Cocoa,Macos,Interface Builder,我一直在学习教程。在编写应用程序控制器类,然后在Interface Builder中添加和连接时,我在概念上遇到了问题 添加AppController类 下一个任务是添加 接口生成器的新类 记录并连接类 出口 创建 AppController类。在界面中 在“生成器库”窗口中,单击“类”。 找到AppController类。拖曳 将该类导入文档窗口以 创建名为App的实例 控制器。连接应用程序 控制器的QCW窗口出口至 设计窗口。按住控制按钮 钥匙在文档窗口中,从 将应用程序控制器添加到窗口 对

我一直在学习教程。在编写应用程序控制器类,然后在Interface Builder中添加和连接时,我在概念上遇到了问题

添加AppController类 下一个任务是添加 接口生成器的新类 记录并连接类 出口

创建 AppController类。在界面中 在“生成器库”窗口中,单击“类”。 找到AppController类。拖曳 将该类导入文档窗口以 创建名为App的实例 控制器。连接应用程序 控制器的QCW窗口出口至 设计窗口。按住控制按钮 钥匙在文档窗口中,从 将应用程序控制器添加到窗口 对象选择窗口出口 从显示的列表中。连接 将应用程序控制器的qcView出口设置为 设计窗口中的QC视图。持有 按下控制键。从窗口拖动 将控制器应用到中的QC视图 设计窗口。选择qcView 从显示的列表中退出


具体来说,我不明白这个应用程序控制器在运行时是如何使用的。我所做的一切就是连接IB中的窗口和视图插座,它神奇地工作起来,就像在我的应用程序委托的
applicationdFinishLaunching:aNotification
方法中初始化一样。我的观点是,我没有在代码中的任何地方使用我的App Controller类,我在IB中所做的只是连接它的插座,那么它是如何工作的呢?

当你的应用程序启动时,会创建一个的共享实例,并连接它的内容(包括主菜单本身)。在此加载过程中,NSApp实例的委托指向您的“未冻干”(未归档)类,该类(以及其他可能的内容)可以回答NSApp委托问题,然后可以开始发送消息(并依赖它进行应用程序范围的行为定制)

所有这一切的一个有用方面是,您可以通过
[NSApp delegate]
从应用程序中的任何位置访问该委托,这是
[[NSApplication sharedApplication]delegate]
的缩写。如果您将应用程序代理挂起并为其提供访问器(如
[[NSApp delegate]fooController]
),这对于导航架构的某些部分非常方便