Objective c 文件所有者和非应用程序,appdelegate

Objective c 文件所有者和非应用程序,appdelegate,objective-c,xcode,Objective C,Xcode,在apple文档中,它声明nsapplication是主nib的文件所有者。这是由模板设置的,还是必须以这种方式加载要加载的第一个nib 此外,我还通读了其他关于文件所有者的帖子,有些东西仍然让我感到困惑。如果Iboutlet是nibs文件所有者的属性,并且对象位于该nib中,那么Iboutlet只能指向对象吗?为什么nib除了需要知道对象之外还需要知道其所有者的类?知道或不知道这一点会启用或禁用什么 还有一点,appdelegate在这张图片中的位置是什么?你甚至可以更改应用程序代理吗 谢谢:

在apple文档中,它声明nsapplication是主nib的文件所有者。这是由模板设置的,还是必须以这种方式加载要加载的第一个nib

此外,我还通读了其他关于文件所有者的帖子,有些东西仍然让我感到困惑。如果Iboutlet是nibs文件所有者的属性,并且对象位于该nib中,那么Iboutlet只能指向对象吗?为什么nib除了需要知道对象之外还需要知道其所有者的类?知道或不知道这一点会启用或禁用什么

还有一点,appdelegate在这张图片中的位置是什么?你甚至可以更改应用程序代理吗


谢谢:-)

Xcode的应用程序模板设置了
main menu.xib
作为其所有者加载
NSApp
。这是通过
NSApplicationMain
功能完成的
NSApplicationMain
在应用程序的
Info.plist
文件中查找
NSMainNibFile
键。如果找到该键,它将使用相应的值作为要加载的nib文件的名称。Xcode的应用程序模板将
NSMainNibFile
设置为
main菜单

不必那样做。您可以更改或删除
Info.plist
中的
NSMainNibFile
条目。您甚至不能使用
NSApplicationMain
。相反,您可以自己初始化
NSApp
(通过调用
[NSApplication sharedApplication]
),然后通过编程或加载NIB创建用户界面,然后调用
[NSApp run]

nib加载程序只能将出口连接到其加载的nib中的对象,或连接到文件的所有者、第一响应者或应用程序。门店本身不必是文件的所有者;它可以位于笔尖中的任何对象上

设置文件所有者的类时,Interface Builder会扫描源代码以查找该类的声明。这就是它知道文件所有者应该拥有哪些出口和操作的方式

应用程序委托通常是应用程序的顶级控制器。当发生各种应用程序级事件时,会通知它。看这张照片


在Xcode的应用程序模板中,应用程序委托是
main menu.xib
中的一个对象(nib中可以有非用户界面对象),它连接到文件所有者的
委托
出口。您可以根据需要修改该类。甚至可以完全从nib中删除对象。但是任何严肃的应用程序都需要一个应用程序代理。

Xcode的应用程序模板设置
main menu.xib
NSApp
作为其所有者加载。这是通过
NSApplicationMain
功能完成的
NSApplicationMain
在应用程序的
Info.plist
文件中查找
NSMainNibFile
键。如果找到该键,它将使用相应的值作为要加载的nib文件的名称。Xcode的应用程序模板将
NSMainNibFile
设置为
main菜单

不必那样做。您可以更改或删除
Info.plist
中的
NSMainNibFile
条目。您甚至不能使用
NSApplicationMain
。相反,您可以自己初始化
NSApp
(通过调用
[NSApplication sharedApplication]
),然后通过编程或加载NIB创建用户界面,然后调用
[NSApp run]

nib加载程序只能将出口连接到其加载的nib中的对象,或连接到文件的所有者、第一响应者或应用程序。门店本身不必是文件的所有者;它可以位于笔尖中的任何对象上

设置文件所有者的类时,Interface Builder会扫描源代码以查找该类的声明。这就是它知道文件所有者应该拥有哪些出口和操作的方式

应用程序委托通常是应用程序的顶级控制器。当发生各种应用程序级事件时,会通知它。看这张照片


在Xcode的应用程序模板中,应用程序委托是
main menu.xib
中的一个对象(nib中可以有非用户界面对象),它连接到文件所有者的
委托
出口。您可以根据需要修改该类。甚至可以完全从nib中删除对象。但任何严肃的应用程序都需要一名应用程序代表。

请查看此;特别是关于理解基本设计模式的部分。它解释了委托、视图控制器等方面的内容。我明白这一点,但我没有得到详细信息;特别是关于理解基本设计模式的部分。它解释了委托、视图控制器等方面的内容。我也这么理解,但我不了解详细信息谢谢你的帮助,我只是想确保我了解一些事情:nib中唯一可以访问的对象(连接到或从中连接)是该nib中的对象和代理对象?如果是这样的话,为什么会设置此限制?感谢您的帮助,我只想确保我了解一些事情:nib中唯一可以访问的对象(连接到或从中连接)是该nib中的对象和代理对象?如果是,为什么要设置此限制?