我有一个带复选框的viewbase tableview。我为nstableviewcell创建了自定义类,以操纵每行的复选框。
问题是当我在tableview中选中多个复选框并向下滚动时。然后我向后滚动,尽管所选数据在数组中,但复选框状态仍然消失了。
这是我的表视图
else if tableView.tag == 2{
if (tableColumn?.identifier)!.rawValue == "AlbumColumn" . {
if let cell: MyCustomViewCell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "AlbumColumn"), owner: self) as? MyCustomViewCell
{
cell.AlbumCbx.state = NSControl.StateValue(rawValue: 0)
cell.AlbumCbx.title = albums[row]!
cell.onClickAlbumCbx = { sender in
if !selected_album.isEmpty{
if cell.AlbumCbx.state.rawValue == 1{
selected_album.append(albums[row]!)
} else {
selected_album = selected_album.filter({ $0 != albums[row]! })
}
}
}
return cell
}
}
}
我在Google和stackoverflow上进行了搜索,我找到了解决此问题的方法:
func tableView(_ tableView: NSTableView, rowViewForRow row:Int) -> NSTableRowView? {
}
尽管我不知道该方法的实现。
答案 0 :(得分:0)
我这样写,像魅力一样
cell.AlbumCbx.state = NSControl.StateValue(rawValue: 0)
for s in selected_album{
if cell.AlbumCbx.title == s
{
//print(true, cell.AlbumCbx.title)
cell.AlbumCbx.state = NSControl.StateValue(rawValue: 1)
}
}