Scroller http://f.cl.ly/items/1b1v2D2X1D092k2R1C0i/Scrollbar.png
嗨!我正在使用NSScrollView,它具有基于视图的NSTableView。每当表格添加一个表格单元格时,滚动条就会显示,直到您看到滚动条没有透明背景为止。由于某种原因,它的背景是白色的,你可以在图像上看到。
我使用IB来设置NSScrollView和NSTableView,我找不到任何可以禁用滚动条背景的选项。可能导致这种情况的任何想法?
更新:Xcode中我的NSScrollView的设置
Xcode http://f.cl.ly/items/2R0k1x0T1X0A160E3l2i/Screen%20Shot%202012-06-29%20at%2002.06.32.png
答案 0 :(得分:18)
覆盖NSScroller并执行以下操作。这将为您提供透明的背景。
- (void) drawRect: (NSRect) dirtyRect
{
[self drawKnob];
}
答案 1 :(得分:2)
我唯一的建议是确保您的NSScrollers
属于默认样式,或者如果您使用的是自定义卷轴,则设置为覆盖+ (BOOL)isCompatibleWithOverlayScrollers
的类。
在IB中,检查“Scroller Knobs”下的“Default Style”,从顶部开始。
OS X Lion引入了新的NSScrollers
(叠加滚动条),与Snow Leopard中和SL(传统滚动条)之前的版本形成鲜明对比。叠加滚动条是淡入/淡出的类型,并且在内容之上绘制而没有明显的白色背景。
在某些情况下,Lion决定使用旧版滚动条而不是新的叠加滚动条(因为,例如,如果没有插入滚轮的指针设备,则无法精确滚动隐藏的叠加滚动条)
The OS X 10.7 documentation解释得很清楚。总而言之,检查a)用户是否禁用了覆盖滚动条,b)是否插入了不支持的设备,或者c)您是否继承NSScroller,添加附件视图或忘记覆盖+ (BOOL)isCompatibleWithOverlayScrollers
。
如果您不喜欢显示的旧版滚动条并希望支持不受支持的设备(例如,在内容之上绘制的灰色滚动条不会淡入/淡出),则必须将NSScroller
子类化并绘制为自定义-ly。像Twitter for Mac这样的应用就是这样做的。
答案 2 :(得分:1)
对我来说,在我的视图控制器中,我将滚动条样式设置为:
[_scrollView setScrollerStyle:NSScrollerStyleOverlay];
这使得滚动条具有透明背景。
答案 3 :(得分:-2)
如果你想在NSScrollView中实现透明度,或者只是想要一个清晰的滚动视图背景......只需使用NSScrollView的setDrawsBackground
属性,即:
[scrollView setDrawsBackground:NO];
希望这有助于某人。谢谢:))