微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift NSOutlineView & TreeController 绑定和单元格填充不适用于带有三角形的第一列,但适用于所有其他列 节点视图控制器树控制器绑定大纲视图绑定NSTableColumn 检查器表格视图单元格检查器

如何解决Swift NSOutlineView & TreeController 绑定和单元格填充不适用于带有三角形的第一列,但适用于所有其他列 节点视图控制器树控制器绑定大纲视图绑定NSTableColumn 检查器表格视图单元格检查器

我有一个通过 Cocoa 绑定链接的简单 OutlineView 和 TreeController,由于某种原因,第一列的单元格没有填充数据,但仍显示它们的三角形。任何其他列似乎都有效。我已经查看绑定检查器几个小时了,但无法找出错误和/或缺失的内容

Image of app missing data in first cell

节点

class Node: NSObject {
    @objc dynamic let id: String
    @objc dynamic let value: Double
    @objc dynamic var children: [Node]
    
    init(_ id: String,_ value: Double,_ children: [Node] = []) {
        
        self.id = id
        self.value = value
        self.children = children
    }
    
    @objc dynamic var isLeaf: Bool {
        return children.isEmpty
    }
    
    @objc dynamic var childCount: Int {
        return children.count
    }
}

视图控制器

import Cocoa

class ViewController: NSViewController {

    @objc dynamic var transactions = [Transaction]()
    @objc dynamic var nodes = [Node]()
    
    @IBOutlet weak var outlineView: NSOutlineView!
    @IBOutlet var treeController: nstreecontroller!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        
        let nodeOne = Node("first",1.0,[Node("subOne",1.1),Node("subTwo",1.2)])
        let nodeTwo = Node("second",2.0,2.1),2.2),Node("subThree",2.3)])
        let nodeThree = Node("third",3.0,3.1,[Node("subSubOne",3.10)])])
        let nodeFour = Node("fourth",4.0,[])
        
        
        nodes.append(nodeOne)
        nodes.append(nodeTwo)
        nodes.append(nodeThree)
        nodes.append(nodeFour)
    }

    override var representedobject: Any? {
        didSet {
        // Update the view,if already loaded.
        }
    }
}

截图

树控制器绑定

Attributes Inspector

Bindings Inspector

大纲视图绑定

Bindings Inspector

NSTableColumn 检查器

Bindings Inspector

表格视图单元格检查器

Bindings Inspector

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?