7

滚动条

你好!我正在使用具有基于视图的 NSTableView 的 NSScrollView。每当表格添加表格单元格时,滚动条就会显示出来,这很好,直到您看到滚动条没有透明背景。出于某种原因,它的背景是白色的,正如您在图像上看到的那样。

我使用 IB 设置了 NSScrollView 和 NSTableView,但我找不到任何可以禁用滚动条背景的选项。有什么想法可能导致这种情况吗?

更新:Xcode 中我的 NSScrollView 的设置

Xcode

4

4 回答 4

19

覆盖 NSScroller 并执行以下操作。这会给你一个透明的背景。

- (void) drawRect: (NSRect) dirtyRect
{
    [self drawKnob];
}
于 2012-10-27T00:41:11.070 回答
3

我唯一的建议是确保您是默认样式,或者如果您使用自定义滚动条,则NSScrollers设置为覆盖的类。+ (BOOL)isCompatibleWithOverlayScrollers

在 IB 中,检查“滚动旋钮”下的“默认样式”是否被选中,从顶部数第二个。

在此处输入图像描述


OS X Lion 引入了新的NSScrollers(覆盖滚动条),与 Snow Leopard 和 SL 之前的版本(旧滚动条)形成对比。覆盖滚动条是淡入/淡出的类型,并在内容顶部绘制而没有明显的白色背景。

在某些情况下,Lion 决定使用旧版滚动条而不是新的覆盖滚动条(因为,例如,如果插入了不带滚轮的指针设备,它就不能完全滚动隐藏的覆盖滚动条)

OS X 10.7 文档很好地解释了它。总而言之,检查 a) 用户是否禁用了覆盖滚动条,b) 如果您插入了不受支持的设备,或者 c) 您正在继承 NSScroller、添加附件视图或忘记覆盖+ (BOOL)isCompatibleWithOverlayScrollers

如果您不喜欢出现的遗留滚动条并希望支持不受支持的设备(例如,在不淡入/淡出的内容顶部绘制的灰色滚动条),您必须对其进行子类NSScroller化并自定义绘制。像 Twitter for Mac 这样的应用程序可以做到这一点。

于 2012-06-28T22:55:46.603 回答
1

对我来说,在我的视图控制器中,我将滚动条样式设置为:

[_scrollView setScrollerStyle:NSScrollerStyleOverlay]; 

这使得滚动条具有透明背景。

于 2013-06-07T22:39:23.213 回答
-4

如果你想在 NSScrollView 中实现透明度,或者只是想为滚动视图提供清晰的背景......只需使用setDrawsBackgroundNSScrollView 的属性,即:

[scrollView setDrawsBackground:NO];

希望这可以帮助某人。谢谢 :)

于 2014-07-22T10:40:53.193 回答