我正在尝试在 Cocoa 中创建时间线控件。这就是我想要达到的目标。它基本上是一个标准的时间线设计。
但是,我不知道该采取哪种方法。问题在于顶部标尺、左侧轨道列表和底部音频波形显示。这三个部分需要始终可见并“粘”在边缘。标尺和音频波形只能水平滚动,而左侧的轨道列表只能垂直滚动。
对于顶级标尺,NSRulerView 似乎很合适,因为它只是一个标尺。
对于左视图和底视图,我不知道该走哪条路线。我已经使用宽垂直 NSRulerView 作为曲目列表。这可行,但会产生额外的问题。例如:顶部标尺出现在曲目列表上方。
到目前为止,我已经编写了四个选项:
忘记 NSRulerView 并在文档视图中绘制所有自定义内容。这似乎可行,但在 NSRulerView 函数中构建了回避。另外,我需要找到一种方法来缩短滚动条,这样它们就不会与侧视图和顶视图重叠。
将 NSRulerViews 用于顶部和左侧。然后可能会在文档视图中手动绘制底部。
将左视图放在滚动视图之外,并通过将其链接到主滚动视图来手动上下滚动。顶部使用 NSRulerView,在文档视图中手动绘制音频波形。
嵌入在另一个 NSScrollView 中的 NSScrollView。外部处理水平滚动,内部滚动视图处理垂直滚动。我认为可能,但它似乎很hacky。
所以我的问题归结为:走哪条路?任何人都可以阐明这个问题并指出我正确的方向吗?