90

iOS - Xcode 中的文件所有者和第一响应者是什么?

4

1 回答 1

171

文件所有者是一个实例化的运行时对象,它在加载 nib 时拥有 nib 的内容及其出口/操作。它可以是您喜欢的任何类的实例 - 查看工具面板的标识选项卡。

文件所有者是您的应用程序代码和 nib 文件内容之间的主要链接。

例如,假设您有一个 UIViewController 子类,其中包含一个用于 UILabel 的 IBOutlet。在界面生成器中,文件的所有者将设置为与 UIViewController 相同的类。当您的 nib 在运行时加载时,在您的 nib 中定义的出口和操作的绑定将绑定到您的视图控制器的实例,因为您的视图控制器是所有者。

使用以下方式加载笔尖:

[[NSBundle mainBundle] loadNibNamed:@"NibName" owner:nil options:nil];

owner 参数尤为重要。这是一个类的运行时实例,它拥有正在加载的 nib 的内容(出口、操作和对象)。

希望这很清楚。要在工作中看到这一点,请创建一个带有视图控制器的全新 iPhone 项目。打开 Nib 文件并查看身份选项卡。

第一响应者只是响应者链中可以响应事件的第一个对象。响应者链是可以响应事件的对象的运行时集合(或更准确地说是层次结构)。例如,假设您有一个带有视图的窗口,并且该视图上有一个文本字段。

如果该文本字段具有焦点,则它被称为链中的第一响应者。因此,如果您向第一响应者发送消息,它将首先发送到文本字段。如果文本字段无法处理消息,它将被发送到下一个响应者。接下来。接下来,直到您到达响应者链的末尾或某些东西已经消耗了事件(iirc)。

响应者链值得一读——点击苹果的文档了解更多信息。

于 2010-09-22T11:31:26.357 回答