当用户将鼠标悬停在 NSScroller
上时,它会自动扩展其宽度。
但是,文档 View 的空间很小,这就是滚动条不应展开的原因。
如何禁用此行为?
最佳答案
这可能有点太晚了,但是这样的东西可能会有所帮助?
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];
}
关于objective-c - 不扩展 NSScroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15863923/