2011-12-26 15 views
0

空のアプリケーションは、メインウィンドウでプログラムで描画を試みます。つまり、まずインターフェイスビルダから「カスタムビュー」をドラッグしないでください。いくつかのブレークポイントといくつかのNSLogs()私は設定から​​判断すると、私が表示が開始されていますが、drawRect:が呼び出されていません

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

を呼び出すとき、それはのNSLogを出力しますので、私は私のrectangle1が開始されていることを伝えることができるようですが、それは窓にビューを描画しません。 。すなわち、-(void)drawRect:(NSRect)dirtyRectが呼び出されていないと、その中のNSLogは印刷されません。 RectangleViewは単純で、NSViewのサブクラスで、をNSBlueColorと呼びます。

私はInterface Builderの上にビューをドラッグして、それが完全に...魔法のように青色のボックスを描き作品RectangleViewするクラスの設定...

答えて

0

私はあなたがサブビューの追加を参照してください、私はしないでください再描画するよう何かを教えてください。スーパービューに-setNeedsDisplay:YESを送信するとどうなりますか?

+0

...私は

[_window.contentView addSubview:rectangle1];

を読むために一番下の行を変更していないし、今では完璧に動作します。また、initWithFrame:メソッドで[self display]を呼び出すと、何も起こりません。 – SeniorShizzle

関連する問題