gpt4 book ai didi

objective-c - 不扩展 NSScroller

转载 作者:行者123 更新时间:2023-12-03 17:54:26 25 4
gpt4 key购买 nike

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

enter image description here

但是,文档 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com