2013-04-07 49 views
0

NSScroller当用户悬停在它上面时,会自动扩展它的宽度。不扩展NSScroller

enter image description here

然而,文档视图有漂亮的小空间,这就是为什么滚动条不应该扩大。

如何禁用此行为?

回答

1

这可能有点太晚了,但这样的事情可能会有所帮助?

1)为垂直滚动条创建自定义滚动条。

2)覆盖 - drawKnob强制将旋钮拖动为默认大小,即使要绘制“展开”。

-(void)drawKnob 
{ 
    NSRect knobSlot = [self rectForPart:NSScrollerKnob]; 
    if(sFlags.isHoriz) 
    { 
     knobSlot.size.height = 9; 
     knobSlot.origin.y = 6; 
    } 
    else 
    { 
     knobSlot.size.width = 9; 
     knobSlot.origin.x = 6; 
    } 

    NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:knobSlot xRadius:5 yRadius:5]; 

    [[NSColor scrollBarColor] set]; 
    [path fill]; 
} 

3)根据,如果你仍然想旋钮插槽与否,覆盖 - drawKnobSlotInRect

-(void)drawKnobSlotInRect:(NSRect)slotRect highlight:(BOOL)flag 
{ 
    NSRect newRect = slotRect; 
    if(sFlags.isHoriz) 
     newRect.origin.y = 4; 
    else 
     newRect.origin.x = 4; 
    [super drawKnobSlotInRect:newRect highlight:flag]; 
}