【问题标题】:When do I not need to specify File's Owner for a nib?什么时候不需要为 nib 指定文件的所有者?
【发布时间】:2009-08-22 05:27:33
【问题描述】:

我一直在阅读 Stack Overflow 上的 File's Owner 和其他一些资源,但我只剩下一个问题。我什么时候不需要一个文件的所有者来获得一个笔尖?在探索 iPhone SDK 的第 8 章(顺便说一句,一本很棒的书)中,您设计了一个表格视图单元格 nib。作者是这样说的:

您可能想知道为什么我们没有对文件所有者图标做任何事情。原因是我们根本不需要。我们使用这个表格单元格来显示数据,但是与用户的所有交互都将通过表格视图进行,因此它不需要自己的控制器类。我们实际上只是将笔尖用作一种模板,因此我们可以直观地设计表格单元格。

这对我来说没有意义。我的印象是所有 nib 文件都需要一个 File's Owner,但显然我对这个概念的理解并不完整。有人可以重述何时以及为什么我不需要担心文件的所有者吗?

【问题讨论】:

    标签: iphone objective-c cocoa interface-builder


    【解决方案1】:

    按照您引用的内容,这本书说您的文件所有者正在使用笔尖中的对象,但笔尖中的对象没有使用文件所有者,因此您根本不需要配置文件所有者IB。

    你总是有一个文件的所有者,因为某物正在加载笔尖,而那东西就是文件的所有者。

    更重要的是,即使 nib 中的对象现在不使用 FO,您也可以稍后更改它们以这样做,因此您不妨每次都配置 FO。

    在 IB 中配置 FO 还可以更轻松地访问 nib 中的对象。一旦你告诉 IB FO 是什么类,你就可以在你的 header 中创建出口变量,IB 会自动检测它们;然后你可以在 IB 中连接这些插座,并通过代码中的这些插座变量访问对象。

    【讨论】:

    • 如果我理解正确的话,File's Owner 总是设置的,但是如果你的 nib 不需要将任何东西传回程序的其余部分,你就不要将 File's Owner 用于出口或目标。对吗?
    • 如果你不使用 File's Owner,你会觉得你不能有出口,但事实并非如此(我相信你也知道这一点) .一般来说,如果您要继承 NS*Controller 类之一,那么为 File's Owner 设置类会非常有用。
    • 您仍然可以将 FO 设置为操作的目标,甚至还可以绑定到 FO。是的,您可以在 IB 中手动添加插座,但我发现只设置一次类并让 IB 自动检测插座(并标记陈旧的插座连接!)之后更容易。
    • (嗯,你可以在 Mac 上绑定。在 iPhone 上不行。)
    • IB 将自动检测您创建的其他自定义类中的出口/动作(您只需添加一个 NSObject 并设置其类)。还是我看错你了?
    猜你喜欢
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多