gpt4 book ai didi

swift - 如何将模型绑定(bind)到 NSTableView?

转载 作者:行者123 更新时间:2023-11-28 15:05:30 25 4
gpt4 key购买 nike

我正在调用委托(delegate)方法 func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? 来加载数据。每当我的模型发生变化时,我都需要调用 NSTableView.reload() 来刷新 tableView。如何将模型绑定(bind)到 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
}
}

最佳答案

  • 使用NSArrayController
  • 将 TableView 的 Content 绑定(bind)到数组 Controller 的 arrangedObjects(将 Model Key Path 留空)。
  • 将每个文本字段的 Value 绑定(bind)到 Table Cell View > ObjectValue > 属性或 key。<

或者

  • 实现numberOfRowsobjectValueForColumn:row并连接数据源
  • 将每个文本字段的 Value 绑定(bind)到 Table Cell View > ObjectValue > 属性或 key。<
  • 使用 insertRowsremoveRows 方法插入和删除数据。

强烈建议使用自定义类作为模型而不是字典。

关于swift - 如何将模型绑定(bind)到 NSTableView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48539855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com