2011-12-26 5 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.

Когда я перетащить вид на Interface Builder и установить его класс RectangleView это работает отлично ... Рисует синюю коробку как шарм ...

ответ

0

Я изменил нижнюю строку на

[_window.contentView addSubview:rectangle1];

и теперь он работает отлично ...

0

Я вижу, добавив подвид, но я не видеть, как вы говорите что-нибудь, чтобы перерисовать. Что произойдет, если вы отправите -setNeedsDisplay:YES в супервизор?

+0

Ничего. Также, когда в методе initWithFrame: я вызываю [self display], ничего не происходит. – SeniorShizzle

Смежные вопросы