0

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

在此处输入图像描述

但是,文档视图的空间很小,这就是滚动条不应该展开的原因。

如何禁用此行为?

4

1 回答 1

1

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

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

2) Override - 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];
}
于 2013-11-03T21:08:00.927 回答