2010-01-14 90 views
4

我正在开发一个可可中的应用程序,它需要通过单击NSTableview中的复选框来选择一个项目。我需要选择单元格而不突出显示表格行 是否可以这样做。 .. 在此先感谢NSTableview disble高亮颜色

回答

18

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

所以,在awakeFromNib:或类似:

[tableView setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];

+1

这个工作对我来说太棒了。 – lukemh 2012-06-30 10:29:57

+1

或者在Interface Builder的表属性检查器中,将“Highlight”设置为“None”。 – 2016-09-21 22:51:12

2

通常,只有可选的或选择的细胞可以被跟踪;复选框需要跟踪才能被选中/取消选中。

但可以通过使用NSTableView的代表完成您想要的操作:tableView:shouldTrackCell:forTableColumn:row:方法可用于允许跟踪不可选或不可选的单元格。

0

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

0

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 
} 
+0

在提供自己的答案之前,尤其是对一个有点老的问题,请阅读现有的答案。如果你的回答与其他人不存在重大差异,那么应该避免做出新的回答。相反,如果您有其他数据值得分享(例如快速详细信息),请编辑已存在的答案,并且与您的答案最相似。 – mah 2018-02-11 16:51:23