2011-12-26 18 views
0

我有一個空白的應用程序,其中我試圖通過編程方式在主窗口上繪製視圖,也就是說,無需先從Interface Builder中拖動「自定義視圖」 。從一些斷點和一些NSLogs()我設置來看,似乎當我打電話視圖正在啓動,但drawRect:不叫

RectangleDrawer *rectangle1 = [[RectangleDrawer alloc] initWithFrame:NSMakeRect(10, 10, 50, 50)]; 
[[[[NSApplication sharedApplication] mainWindow] contentView] addSubView:rectangle1]; 

我可以告訴大家,我的rectangle1被啓動,因爲它打印出的NSLog,但它不繪製窗口視圖。也就是說-(void)drawRect:(NSRect)dirtyRect沒有被調用,它不會在內部打印NSLog。 RectangleView很簡單,它的子類NSView它調用NSRectFill([self bounds])NSBlueColor

當我拖動視圖到界面生成器並設置它的類RectangleView它完美...繪製像一個魅力的一個藍色的盒子......

回答

0

我改變了底線閱讀

[_window.contentView addSubview:rectangle1];

,現在,它的作品完美...

0

我看你添加子視圖,但我不看到你告訴任何重繪。如果您發送-setNeedsDisplay:YES到超視圖會發生什麼?

+0

沒有。另外,在我調用[self display]的initWithFrame:方法中,也沒有任何反應。 – SeniorShizzle 2011-12-26 07:58:16