NSTableview禁用高亮颜色

时间:2010-01-14 09:33:20

标签: cocoa tracking nstableview

我在cocoa中开发一个应用程序,需要通过单击NSTableview中的复选框来选择项目。我需要选择单元格而不突出显示表格视图的行 是否有可能做到这一点... 提前致谢

4 个答案:

答案 0 :(得分:20)

NSTableView有一个名为setSelectionHighlightStyle:的方法,您可以将NSTableViewSelectionHighlightStyleNone作为选项发送给它,它不会显示突出显示。

所以,在awakeFromNib:或类似的:

[tableView setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];

答案 1 :(得分:2)

通常,只能跟踪可选择或选定的单元格;复选框需要跟踪才能进行检查/取消选中。

但是可以使用NSTableView的委托来执行您想要的操作:tableView:shouldTrackCell:forTableColumn:row:方法可用于跟踪不可选择或未选择的单元格。 / p>

答案 2 :(得分:1)

NSTableview具有设置选择HighlightStyle

的方法

在tableivew方法中添加以下行:

func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView?
{ 
    let cell:customCell = tableView.make(withIdentifier: 
     "customCell", owner: self) as! customCell

      tableview.selectionHighlightStyle = .none
}

答案 3 :(得分:0)

为什么不在底层模型中设置相关的布尔属性?如果您正在使用Bindings,表视图应自动获取更改;如果没有,您可以告诉表视图重新加载该行。