【发布时间】:2012-09-15 15:59:37
【问题描述】:
我正在尝试在 Cocoa 中创建时间线控件。 This is what I am trying to achieve.基本上是标准的时间线设计。
但是,我不知道该采取哪种方法。问题在于顶部标尺、左侧轨道列表和底部音频波形显示。这三个部分需要始终可见并“粘”在边缘。标尺和音频波形只能水平滚动,而左侧的曲目列表只能垂直滚动。
对于顶部的标尺,NSRulerView 似乎很合适,因为它只是一个标尺。
对于左视图和底视图,我不知道该走哪条路线。 I've played with using a wide vertical NSRulerView for the track list. 这可行,但会产生其他问题。例如:顶部标尺出现在曲目列表上方。
到目前为止,我已经编写了四个选项:
忘记 NSRulerView 并在文档视图中自定义绘制所有内容。这似乎可行,但在 NSRulerView 函数中构建了回避。另外,我需要找到一种方法来缩短滚动条,这样它们就不会与侧视图和顶视图重叠。
在顶部和左侧使用 NSRulerViews。然后可能会在文档视图中手动绘制底部。
将左视图放在滚动视图之外,并通过将其链接到主滚动视图来手动上下滚动。顶部使用 NSRulerView,在文档视图中手动绘制音频波形。
嵌入在另一个 NSScrollView 中的 NSScrollView。外部处理水平滚动,内部滚动视图处理垂直滚动。我认为可能,但它看起来很老套。
所以我的问题归结为:走哪条路线?任何人都可以阐明这个问题并指出正确的方向吗?
【问题讨论】:
标签: cocoa nsview drawrect nsscrollview