在实例化对象之后,nib加载代码如何建立到出口的连接?
苹果公司的文件上说:
一旦从存档中实例化和初始化了所有对象,
加载代码就会尝试重新建立每个对象的出口与相应的目标对象之间的连接。如果您的自定义对象有出口,则NSNib对象将尝试重新建立在Interface中创建的任何连接。它首先尝试使用对象自己的方法建立连接。对于每个需要连接的出口,NSNib对象在对象中查找表单setOutletName:的方法。如果存在该方法,则NSNib对象调用该方法,将目标对象作为参数传递。..。
但是它如何确定目标对象?
例如,我有一个对象
@interface Foo: NSObject
{
IBOutlet NSButton *redButton;
}
...
@endredButton通过IB与窗口上的按钮连接。nib加载代码将如何建立连接?
在nib文件中有任何“连接数据”吗?
发布于 2011-04-07 09:58:16
是的,当然NIB文件必须存储这些连接。如果您在文本编辑器中打开XIB文件,您将为每个出口连接找到如下代码段:
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">launchAtLoginCheckBox</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="951818764"/>
</object>
<int key="connectionID">72</int>
</object>因此,苹果似乎使用私有类IBConnectionRecord和IBOutletConnection的实例来对连接进行建模。
https://stackoverflow.com/questions/5579151
复制相似问题