How to change color of divider in NSSplitView?

appkit, cocoa, nssplitview, xcode4

Solution

I've tried subclassing `- (void)dividerColor` too and I'm not sure why it doesn't work even though I know it's being called (and it's in the documentation).

One way to change the color of the divider is to subclass - (void)drawDividerInRect:(NSRect)aRect. However, for some reason, this method isn't called and I've checked all over the web for answers, but couldn't find anything, so I ended up calling it from `drawRect`. Here is the code for the subclassed NSSplitView:

-(void) drawRect {
    id topView = [[self subviews] objectAtIndex:0];
    NSRect topViewFrameRect = [topView frame];
    [self drawDividerInRect:NSMakeRect(topViewFrameRect.origin.x, topViewFrameRect.size.height, topViewFrameRect.size.width, [self dividerThickness] )];
}

-(void) drawDividerInRect:(NSRect)aRect {
    [[NSColor redColor] set];
    NSRectFill(aRect);
}

Problem

Can we change the color of the divider? Apple documentations says, that we can override -dividerColor in subclass of NSSplitView for this, but it doesn't works for me, or my understanding isn't correct. Also I've try create color layer over divider, e.g.: ``` colorLayer = [CALayer layer]; NSRect dividerFrame = NSMakeRect([[self.subviews objectAtIndex:0] frame].size.width, [[self.subviews objectAtIndex:0] frame].origin.y, [self dividerThickness], self.frame.size.height); [colorLayer setBackgroundColor:[color coreGraphicsColorWithAlfa:1]]; [colorLayer setFrame:NSRectToCGRect(dividerFrame)]; [self.layer addSublayer:colorLayer]; ``` Not works.

Original source