NSView - 在顶部绘制

时间:2014-08-30 19:37:53

标签: objective-c macos cocoa

使用音乐播放器。我有一个带有一堆NSTableCellViews的NSTableView,每个NSTableCellViews都有一个NSSlider,当该曲目开始播放时它会取消隐藏。

现在的问题是,我们希望滑块在NSTableCellView的底部绘制,但这意味着knobRect与它下面的NSTableCellView重叠。确保旋钮在其他表格单元格视图之上绘制的最佳方法是什么?

Image overlap

1 个答案:

答案 0 :(得分:0)

调整行高将是最简单的事情。 (特别是如果你一次只允许一次播放:))

您可以尝试使用NSTableView和NSTableViewDelegate方法的setFloatsGroupRows:方法tableView:isGroupRow: 这个组合提供了一些非常独特的内置自定义功能,但从它的外观来看,您已经定制了相当数量,因此您应该有能力。

你也可以试试它们包装的内容,实际上是NSScrollView的addFloatingSubview:forAxis: 然而,也就是说,NSTableView及其所在的层次结构非常紧密地结合在一起,因此当你不进行浮动组行时,你可能会发现这种行为非常奇怪。

最后,您可能只想重新访问您的UI设计。也许你的卷轴可能是这样的,颜色渐变的边缘是你的滑块,所以你可以把它放在播放轨道的顶部: example slider