NSCell子类化:绘制NSProgressIndicator?

时间:2015-05-11 17:44:02

标签: macos nscell nsprogressindicator nscontrol

我正在使用基于单元格的NSTableView。有没有办法创建自定义NSCell子类并在其中绘制NSProgressIndicator?

类似于:

-(void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView{
  [myProgressControl drawOnView:controlView]; //?
}

NSProgressIndicator本身仅作为状态指示,与用户互动(无需鼠标点击等)。

因为我使用NSTableViewDataSource,所以我想坚持使用基于单元格的NSTableView。 NSLevelIndicatorCell是另一种选择,但我更喜欢NSProgressIndicator

的外观/设计

1 个答案:

答案 0 :(得分:1)

首先,我不确定你的意思"我想坚持使用基于单元格的NSTableView,因为我使用NSTableViewDataSource" 。基于视图的表视图与NSTableViewDataSource之间没有不兼容性,尽管有些情况有所不同。

无论如何,Apple有一个示例项目AnimatedTableView,它显示了基于NSCell的表格视图中的进度指示器。它不是通过使用自定义单元类完成的。而是将进度指示器作为子视图添加到表视图中。在有这样的事情之前,它实际上是一个基于视图的表格视图的穷人版本。

毋庸置疑,我建议您切换到基于视图的表格视图,而不是使用那种错综复杂的方法。