繁体   English   中英

修改 NSScroller 的长度

[英]Modifying the length of an NSScroller

我在我的 Cocoa 应用程序中使用 NSScrollView,我想自定义水平滚动条的长度。 滚动视图的内容分为两个主要区域:左侧的固定宽度区域和右侧的动态宽度区域。 左侧区域仅垂直滚动——当用户左右滚动时,它保持固定在视图的左侧。 这是正在滚动的视图的屏幕截图:

http://jarodlong.com/dropbox/nsscroller_issue.png

我不希望水平滚动条与左侧的固定区域重叠。 它应该限制在右侧区域。

有没有办法在不继承 NSScrollView 的情况下做到这一点? 我真的希望不必子类化,但如果有必要,这样做时我应该注意什么?

我试过只设置水平滚动条的框架,但我认为 NSScrollView 会不断调整滚动条的大小以适应整个区域。

我认为在这种情况下我会使用两个单独的滚动视图,一个在另一个里面。

好的,我和朋友核实了一下,结果发现在 Lion 上,你仍然在NSScrollview中有NSScroller实例,尽管它们是在 GL 表面上绘制的。 未经测试,但这样的事情应该可以解决问题:

@implementation MyScrollView : NSScrollView

- (void) tile
{
[super tile];
id scroller = [self horizontalScroller];
NSRect scrollerRect = [scroller frame];
   // adjust scrollerRect as you want to here
[scroller setFrame:scrollerRect];
}

我会在您的 window 中添加两个 NSScrollView。 左边一个只支持垂直滚动,右边一个支持水平滚动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM