gpt4 book ai didi

objective-c - 如何画一个透明的NSScroller

转载 作者:太空狗 更新时间:2023-10-30 03:56:38 25 4
gpt4 key购买 nike

我将 NSScroller 子类化以尝试使其看起来类似于“滚动条”在 iOS 上的外观。我希望它只是一个覆盖层,代表绘制在其下方的当前位置。无论出于何种原因,如果我为滚动条重写 drawRect,我都会得到充满白色的边界。有什么方法可以防止这种情况发生,这样我就可以在我的 NSScroller 子类结束的基础上进行绘制吗?

编辑:用清晰的颜色绘图似乎让我很接近,但它画得“太清楚了”:P 它直接画到桌面,而我只想画到窗口。这张图可能更清楚 alt text

有什么想法吗?

最佳答案

NSView 子类从 drawRect 开始进行所有绘制。如果您在子类中重写该方法,则您负责完成所有绘制(无论是通过您自己的方法还是调用 super 的方法。)例如,以下代码仅绘制滚动 nob 并绘制其余部分滚动条的边框透明。

- (void)drawRect:(NSRect)dirtyRect {

// Do some custom drawing...
[[NSColor clearColor] set];
NSRectFill(dirtyRect);

// Call NSScroller's drawKnob method (or your own if you overrode it)
[self drawKnob];
}

这更像是一个概念证明,而不是实际的代码建议(不确定这种最小绘图量对 NSScroller 有什么影响。)NSScroller 还有其他特定的绘图方法,您可以从重写的 drawRect 中重写/调用:方法(苹果文档中的信息:http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSScroller_Class/Reference/Reference.html)

关于objective-c - 如何画一个透明的NSScroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4181029/

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