2012-05-15 129 views
3

我创建基于视图的表视图,并且在创建自定义组行时遇到一些麻烦。我想在我的组行中添加文本,并且Apple提供的默认行为非常好,但我需要更改实际行的颜色和外观。我已经分类NSTableRowView,它的工作原理,但不幸的是不是很好。特别是当它开始浮动时,我还没有想出如何更改视图的alpha而不会使文本alpha发生变化。nstableview自定义组行

回答

4

这其实很容易。创建NSTableRowView的新子类并覆盖方法drawRect :. 最好总是调用[super drawRect:dirtyRect];在开始时。 然后你有属性self.isGroupRow。如果是,那么只需绘制自定义组行。

您可以使用tableView:rowViewForRow:方法在Table View委托中加载自定义行。 只需返回它的一个实例就行了

+0

基本上是我最终做了什么,除了我认为drawBackground是我使用的方法。谢谢回复! – rick

0

如果我正确理解你的问题,这个解决方案应该为你工作:

Draw a custom NSTableRowView depending on if next row is group row

+0

如果这只会让你的一部分,也许你可以跟进更具体的问题。 – paulmelnikow

+0

感谢您的帮助。在那个例子中,他通过仅使用一个NSTextField来自动提供浅灰色和浮动属性(如果需要),从而形成一个组。在我的情况下,我需要将组行更改为较深的颜色,并保持浮动属性。我所做的是使用NSTableRowView的子类来为组行创建自定义绘图,但我无法使其浮动。但现在我想我应该只是继承NSTextFieldCell而不是?所以基本上我为子组行划分了什么样的自定义绘图,以及使它浮动的正确方法是什么? – rick

+0

什么是浮动? – paulmelnikow