我在cocoa中开发一个应用程序,需要通过单击NSTableview中的复选框来选择项目。我需要选择单元格而不突出显示表格视图的行 是否有可能做到这一点... 提前致谢
答案 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,表视图应自动获取更改;如果没有,您可以告诉表视图重新加载该行。