在基于NSTableView的视图中处理自定义选择样式

时间:2011-10-31 00:47:42

标签: objective-c macos cocoa user-interface nstableview

如何为基于NSTableView的视图绘制自己的自定义选择样式?我尝试在我的BOOL子类中放置NSTableCellView var,如果单击它,则将其设置为YES,然后我就可以成功绘制自定义选择。但是,当点击另一个视图时,如何将BOOL var更改为NO?谢谢你的帮助。

编辑:在阅读完NSTableView文档之后,看起来我需要继承NSTableRowView以覆盖选择绘图,但是我如何处理我的NSTableRowView子类?如何让表格使用它?

2 个答案:

答案 0 :(得分:14)

好吧,我明白了。你只需要子类NSTableRowView。它具有为选定行和取消选择的行绘制背景的方法。要使表视图使用您的子类,只需实现表视图委托方法tableView:rowViewForRow:并返回子类的实例。

答案 1 :(得分:1)

为了清楚说明,我认为我们应该给出委托方法的代码:

- (NSTableRowView *)tableView:(NSTableView *)tableView rowViewForRow:(NSInteger)row
{
   MyNSTableRowView *rowView = [[MyNSTableRowView alloc]init];
   return rowView;
}