gpt4 book ai didi

cocoa - NSScrollView 具有粘性顶部、左侧和底部 'headers'

转载 作者:行者123 更新时间:2023-12-03 16:29:00 25 4
gpt4 key购买 nike

我正在尝试在 Cocoa 中创建一个时间线控件。 This is what I am trying to achieve.它基本上是一个标准的时间线设计。

但是,我不知道该采取哪种方法。问题出在顶部标尺、左侧轨道列表和底部音频波形显示上。这三个部分需要始终可见并“粘”在边缘上。标尺和音频波形只能水平滚动,而左侧的轨道列表只能垂直滚动。

对于顶部标尺,NSRulerView 似乎合适,因为它只是一个标尺。

对于左 View 和底 View ,我不知道该走哪条路线。 I've played with using a wide vertical NSRulerView for the track list.这可行但会产生额外的问题。例如:顶部标尺出现在轨道列表上方。

到目前为止我已经编写了四个选项:

  1. 忘记 NSRulerView 并在文档 View 中绘制所有自定义内容。这似乎可行,但回避了 NSRulerView 函数中内置的操作。另外,我需要找到一种方法来缩短滚动条,这样它们就不会与侧 View 和顶 View 重叠。

  2. 使用 NSRulerViews 作为顶部和左侧。然后可能会在文档 View 中手动绘制底部。

  3. 将左 View 放置在 ScrollView 之外,并通过将其链接到主 ScrollView 来手动上下滚动它。顶部使用NSRulerView,在文档 View 中手动绘制音频波形。

  4. 嵌入另一个 NSScrollView 的 NSScrollView。外部 ScrollView 处理水平滚动,内部 ScrollView 处理垂直滚动。我认为有可能,但看起来很老套。

所以我的问题归结为:该走哪条路?谁能阐明这个问题并为我指明正确的方向?

最佳答案

我的理解:

  • 您想要 NSScrollView 左侧的 View 与 NSScrollView 一起垂直滚动,同时忽略水平滚动。

  • 您想要一个位于 NSScrollView 下方的 View ,该 View 与 NSScrollView 一起水平滚动,同时忽略垂直滚动。

  • 你需要统治者。

要完成此任务:

  • 使用 3 个独立的 ScrollView ,这些 View 不会重叠,也不会相互继承。

  • 在您希望显示的任何 View 中激活标尺。

  • 同步 ScrollView (以便当一个 ScrollView 时,另一个 ScrollView 也会相应滚动)。

如何同步 ScrollView 在帮助中。请参阅用户体验 > 控件 > Mac ScrollView 编程指南 > 同步 ScrollView 。这也在 NSScrollView 帮助指南的标题中间接链接。

如果您希望将三个 ScrollView 包含在 NSSplitView 中以简化大小调整,则必须添加第四个 View 来占用未使用的角落(放置控件的好地方)。由于 NSSplitView 只能垂直或水平分割,因此您必须创建一个包含 2 个分割 View 的 NSSplitView,每个分割 View 包含您实际看到的 2 个 View (先沿一个方向分割,然后再沿另一个方向分割)。分割 View 的大小调整必须以类似于滚动同步的方式进行同步,以保持所有四个 View 的直交叉。

关于cocoa - NSScrollView 具有粘性顶部、左侧和底部 'headers',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com