Подкласс NSView - drawRect: не вызывается

Я создалNSView подкласс называетсяDAView, включая множество полезных методов для последующего повторного использования. Это прекрасно работает, однако,drawRect: никогда не вызывается ни в каких классах, которые используютDAViewни в самом классе. Зачем?

Вот'шоуDAView похоже:

DAView

@interface DAView : NSView

- (id)initWithFrame:(NSRect)frame
{
    self = [super initWithFrame:frame];

    if (self)
    {
        self.backgroundColor = [NSColor clearColor];

        // Make layer-backed by default
        self.wantsLayer = YES;

        // Create a root layer
        CALayer *_rootLayer = [CALayer layer];

        _rootLayer.shouldRasterize = YES;

        _rootLayer.name = DAViewRootLayerDefaultName;

        self.layer = _rootLayer;
    }

    return self;
}

- (void)drawRect:(NSRect)dirtyRect // never called
{
    NSLog(@"Draw Rect called");
}

Теперь, если бы я хотел использовать этоDAView's дополнения / методы, я сталкиваюсь с той же проблемой. Все отлично работает, кромеdrawRect:, который, как в 'DAViewСлучай, никогда не вызывается:

DATableView

@interface DATableView : DAView

- (void)drawRect:(NSRect)dirtyRect // never called either
{
    [[NSColor grayColor] set];

    NSBezierPath *_cellSeparator = [NSBezierPath bezierPath];

    [_cellSeparator lineToPoint:dirtyRect.origin];

    [_cellSeparator closePath];

    [_cellSeparator stroke];

    NSLog(@"Draw rect");
}

Однако, если я изменюсьDATableViewзаголовок s должен быть подклассом,NSViewdrawRect: называется. Что мне не хватает?

Ответы на вопрос(2)

Ваш ответ на вопрос