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

Posted

技术标签:

【中文标题】iOS - Xcode 中的文件所有者和第一响应者是啥?【英文标题】:What are File Owner and First Responder in iOS - Xcode?iOS - Xcode 中的文件所有者和第一响应者是什么? 【发布时间】:2010-09-22 11:09:32 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

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

笔尖加载使用:

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

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

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

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

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

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

【讨论】:

@dannywartnaby:详细说明!! +1 很好的解释!

以上是关于iOS - Xcode 中的文件所有者和第一响应者是啥?的主要内容,如果未能解决你的问题,请参考以下文章

NSTextfield + NSMenu 和第一响应者

带有 TextField 和第一响应者的自定义 UITableViewCell

什么是***对象?

视图控制器何时会成为第一响应者?

使用第一响应者和第一响应者与目标行动

UIResponder 类和第一响应者角色