2013-04-07 94 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]; 
}