我有一個位於應用程序窗口上方的IB中的NSView。我有一個我分配給NSView的NSView(AddSource)的子類。可可:NSView繪製在IBOutlets上的繪製
在awakeFromNib我實例化視圖:
//add a new Add Source class
addSourceView = [[AddSource alloc] initWithFrame:NSMakeRect(0.0, 959.0, 307.0, 118.0)];
[[winMain contentView] addSubview:addSourceView];
在addSourceView的drawRect方法,我加入了白色背景的觀點:
[[NSColor whiteColor] set];
NSRectFill(rect);
[self setNeedsDisplay:YES];//added this to see if it might solve the problem
在WinMain函數的內容查看我有一個NSButton,當點擊幻燈片將addSourceView拖到窗口上:
NSRect addSourceViewFrame = [addSourceView frame];
addSourceViewFrame.origin.y = 841.0;
[[addSourceView animator] setFrame:addSourceViewFrame];
但似乎是如果應用程序正在繪製在我放置在IB中的NSView上的IBOutlets上。如果在IB中,我重新分配NSView,以便它在屏幕上顯示應用程序啓動時的一切正常,IBOutlets以及背景顏色。
我不知道爲什麼會這樣。我之前完成了這個任務,沒有任何問題。這次我必須做點不同的事情。
感謝您的任何幫助。
*注 - 三號屏幕捕獲,當我說這是應用程序的外觀打開時一樣,那個時候我硬編碼的NSView的Y位置。當它運行正常時,它應該以屏幕截圖1的形式打開。
你似乎很困惑..在drawRect中隨機嘗試諸如-setNeedsDisplay之類的東西不是答案。你讀過Hillegass書嗎? – hooleyhoop
困惑,是的,但不是你的想法。我放下setNeedsDisplay來看看會發生什麼。 – PruitIgoe
好的,我承認 - 我很困惑。從你的描述中不清楚你是使用IB創建你的AddSourceView還是-awakeFromNib – hooleyhoop