在Xcode 3.1.2我用來加載NSCollectionViewItem
的筆尖在我的NSCollectionViewItem
子類是這樣的:NSCollectionView在10.6/3.2的Xcode
-(id)copyWithZone:(NSZone *)zone
{
id result = [super copyWithZone:zone];
[NSBundle loadNibNamed:@"PersonView" owner:result];
return result;
}
在Xcode中3.2 10.6相同的方法下不產生髮生錯誤,但它不會加載NSCollectionView
中的視圖。
是否還有其他事情需要完成才能使視圖顯示出來? 或者是否有更好的方法來做到這一點,NSCollectionItem
的超類更改爲NSViewController
?
畢竟,重寫copyWithZone
來實現這個標準功能總是對我來說似乎是一種破綻。我認爲應該能夠指定應該在IB中使用的筆尖,但似乎Apple不這麼認爲。
我看過了文檔中提供的示例,但NSCollectionViewItem
使用initWithNibName
以編程方式實例化,但我想在IB中創建它。
UPDATE:
我做了什麼kperryua建議,但現在我不能從NSCollectionViewItem
訪問網點。這裏就是我想要做的事:
- (void)setRepresentedObject:(id)object {
if (object) {
[labelName setValue:[object name]];
}
}
我綁定的標籤名稱文件所有者這是我NSCollectionViewItem
。過去在10.5中完美工作,但現在沒有分配出口(我使用GDB檢查過)。
image showing the bindings http://img21.imageshack.us/img21/671/picya.png
更新2:
我也綁定了NSCollectionView
的itemPrototype
我NSCollectionViewItem
(PersonController)的子類。
image showing bindings http://img503.imageshack.us/img503/4672/pic2d.png
現在PersonView.nib
既File's Owner
和NSCollectionView
點到我的子類的itemPrototype
。
image showing console output http://img340.imageshack.us/img340/6184/pic3.png
正如你在截圖中看到的項目都顯示,但由於出口labelName
是無法訪問的標籤的文本不能改變。
我還記錄了我想要設置的名稱,以確保它不是'名稱'。
需要做些什麼來改變標籤的價值?
任何幫助,將不勝感激。
謝謝。它現在顯示出來了,但我無法訪問綁定到包含項目視圖的筆尖的FileOwner的插口。我現在也必須以不同的方式做到這一點嗎? – 2009-09-27 20:45:25
我不確定你的意思。你能詳細說明嗎? – kperryua 2009-09-27 20:59:44
我編輯了我的答案,向你展示我的意思。 – 2009-09-27 21:01:04