我正在调用委托方法func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView?
来加载数据。每次我的模型更改时,我都需要调用NSTableView.reload()
来刷新tableView。如何将模型绑定到NSTableView
?
extension MyViewController: NSTableViewDelegate {
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
let identifier = tableColumn?.identifier.rawValue as String?
if identifier == "AppName" {
let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "AppName"), owner: self) as! NSTableCellView
cell.imageView?.image = NSImage(named: NSImage.Name(rawValue: AppData.appList[row]["icon"] as! String))
cell.textField?.stringValue = AppData.appList[row]["name"] as! String
return cell
}
return nil
}
}
答案 0 :(得分:1)
NSArrayController
Content
绑定到阵列控制器的arrangedObjects
(将Model Key Path
留空)。Value
绑定到Table Cell View
> ObjectValue
>财产或key
。可选地
numberOfRows
和objectValueForColumn:row
并联系data source
Value
绑定到Table Cell View
> ObjectValue
>财产或key
。insertRows
和removeRows
方法插入和删除数据。强烈建议将自定义类用作模型而不是字典。