【问题标题】:Handling custom selection style in view based NSTableView在基于视图的 NSTableView 中处理自定义选择样式
【发布时间】:2011-12-18 10:33:04
【问题描述】:
如何为基于NSTableView 的视图绘制我自己的自定义选择样式?我尝试在我的NSTableCellView 子类中放置一个BOOL var,如果单击它,则将其设置为YES,然后我可以成功绘制我的自定义选择。但是,当单击另一个视图时,如何将 BOOL var 更改为 NO?感谢您的帮助。
编辑:在阅读完 NSTableView 文档后,看起来我需要继承 NSTableRowView 来覆盖选择图,但是我该如何处理我的 NSTableRowView 子类呢?如何让表使用它?
【问题讨论】:
标签:
objective-c
macos
cocoa
user-interface
nstableview
【解决方案1】:
为了清楚起见,我认为我们应该给出委托方法的代码:
- (NSTableRowView *)tableView:(NSTableView *)tableView rowViewForRow:(NSInteger)row
{
MyNSTableRowView *rowView = [[MyNSTableRowView alloc]init];
return rowView;
}
【解决方案2】:
好吧,我想通了。你只需要继承NSTableRowView。它具有为选定和取消选定的行绘制背景的方法。要让表视图使用您的子类,只需实现表视图委托方法tableView:rowViewForRow: 并返回您的子类的一个实例。