2010-03-21 18 views
1

我有一個XIB設立就像這個截圖:XIB實例化對象的IBOutlet中是零

alt text http://emberapp.com/jxpx777/images/interface-builder/sizes/m.png

文件的所有者是我的主窗口控制器。 XIB還負責創建一個對象,作爲MGScopeBar視圖的代表。正如您在屏幕截圖中看到的那樣,範圍欄委託對搜索字段具有IBOutlet,因此它可以作爲委託過程的一部分將其作爲額外視圖返回。

時遇到的問題是,當該委託對象中查詢所述附件視圖,該IBOutletNSSearchField爲零。我相當肯定這與創建對象,IBOutlets有線等的順序有關,但我只是有點失落,因爲我可以期待搜索字段的存在,以至於範圍欄代表可以正確引用它。

在此先感謝任何指針。

回答

6

Apple's documentation,它看起來像一切都應該awakeFromNib之前連線被稱爲在NIB/XIB任何物體上的NIB /廈門國際銀行的網點,但網點可能不連線時init等在對象上調用。

+1

沒有「可能」關於它。出口通過KVC(iPhone)設置或非常像它的行爲(Mac)。這隻能在對象被分配和初始化之後纔會發生。想想如果你在實現nib加載器的話你會怎麼做;它會是這樣的:'id instance = [[[objectClass alloc] initWithCoder:unarchiver] autorelease]; for(NSString * k in objectOutlets)[實例setValue:[objectOutlets objectForKey:k] forKey:k]; [instance awakeFromNib];'注意'initWithCoder:'在出口設置開始之前返回; 'initWithCoder:'正在運行時沒有設置出口。 – 2010-03-22 00:25:14