Mac Custom NSSlider如何覆盖滑块框外的刻度线绘制

时间:2011-07-23 23:02:12

标签: objective-c cocoa nsslider

我正在创建一个自定义NSSlider,我想在每个刻度标记下面绘制标签。 我目前在自定义NSSliderCell -(NSRect)rectOfTickMarkAtIndex中执行此操作但是因为NSSlider的高度已修复,我正在绘制的标签正在被裁剪。

有人有什么想法吗? 此外,任何资源都可以完全实现自定义NSSliders。

1 个答案:

答案 0 :(得分:3)

只需设置NSSlider(实际上是NSView的子类)的框架和边界,使其更高。然后你的绘图应该工作正常。将此代码粘贴到awakeFromNib :(如果您在其子类中,请将slider替换为self。)

NSRect frameRect = [slider frame];
frameRect.size.height = 30;
[slider setFrame:frameRect];
NSRect boundsRect = [slider bounds];
boundsRect.size.height = 30;
[slider setBounds:boundsRect];