我想爲我的NSCollectionViewItem在視圖內放置一個自定義控件。NSCollectionViewItem中的自定義控件
可以說我有一個名爲BoxesView.BoxesView一個自定義的NSView僅僅是繪製在它看來箱的預定數量的視圖。在init方法中設置了這些盒子的數量。比方說,我把它設置爲8
當我加載了集合視圖,視圖做工精細的所有其他控件(按鈕,滑塊等),但我認爲不會畫。
如果我在BoxesView的drawRect方法設置斷點它表明的箱子吸引數爲0!如果我在init方法中設置了一個斷點,並將numBoxes設置爲8,則表明numBoxes實際上設置爲8.此外,即使集合視圖中存在多行,init方法也只會被調用1次。
我在做什麼錯?
UPDATE
我能夠通過設置itemPrototype從廈門國際銀行,而不是在同一廈門國際銀行作爲NSCollectionViewItem被加載到得到這個工作。這很好,除了它只能在10.6而不是10.5下工作。
更新2
我想要做的,就是堅持已經存在了已經存在的NSCollectionViewItem認爲在我的自定義視圖。會發生什麼情況是成員變量mBoxWidth被吹走並且爲零,所以當它繪製它時,什麼都不會發生。
@implementation DumbView
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
mBoxWidth = 3;
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect {
NSRect bounds = self.bounds;
[[NSColor redColor]set];
[NSBezierPath fillRect:NSMakeRect(bounds.origin.x, bounds.origin.y, mBoxWidth, mBoxWidth)];
}
@end
你指的是什麼類的'init'方法?從哪裏發送'init'消息?你是否證實你正在檢查集合視圖項目中同一視圖的numBoxes屬性? – 2010-08-25 15:40:18
我在談論BoxesView init方法。它正在被我的控制器中的一個加載的筆尖調用。控制器是NSCollectionView的所有者 – Randall 2010-08-25 17:52:09
請編輯您的問題以包含您用於設置集合視圖,加載項目視圖以及創建和設置集合視圖項目的代碼。 – 2010-08-26 00:37:33