swift - Cocoa tableview 复选框状态在滚动时丢失

标签 swift cocoa checkbox tableview state

我有一个带有复选框的 View 库表格 View 。我为 nstableviewcell 创建自定义类来操作每行的复选框。

问题是当我在表格 View 中选中多个复选框并向下滚动时。然后我向后滚动,尽管所选数据位于数组中,但复选框状态消失了。

这是我的桌面 View

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? {

}

虽然我不知道如何实现这个方法。

最佳答案

我是这样写的,它很有魅力

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)    
        }
    }

关于swift - Cocoa tableview 复选框状态在滚动时丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447689/

相关文章:

swift - 符合协议(protocol)的类作为 Swift 中的函数参数

ios - swift - 将字符串转换为 NSDate

javascript - 选择 ng-repeat 中的所有复选框

android - 如何调整可绘制复选框的大小以使其正确适合?

Javascript 复选框总和

ios - 快速添加动画序列

ios - 在新窗口或选项卡中打开的链接未在 native iOS 中加载

objective-c - 文档 “Untitled” 无法另存为 "Untitled"

ios - 我应该如何关联核心数据实体以与 RestKit 一起使用?

php - 尝试移植 C++ 代码以将文件上传到服务器到 Objective-C,但它不起作用