0

我试图NSBrowser在 OS X 10.11 上表示 JSON 字典。我有一个字典,其中包含字符串值、字符串值数组或相同字典的成员。

func rootItemForBrowser(browser: NSBrowser) -> AnyObject?我提供我的字典。

func browser(browser: NSBrowser, numberOfChildrenOfItem item: AnyObject?) -> Int我返回子数组或字典中的对象计数。

我对如何使用感到困惑func browser(browser: NSBrowser, child index: Int, ofItem item: AnyObject?) -> AnyObject。这里的返回值最终是其中一个成员的字符串值,这是获取更多数据的关键。但是当我选择这个孩子时,我只有一个父字符串可以使用。我需要到目前为止用户选择的整个路径来实际实现字典的遍历。

我试过查看的path()方法,NSBrowser但这会导致这些委托方法中的无限循环。我查看 Finder 之类的应用程序,并对它们如何实现我想要的路径感到好奇。

4

1 回答 1

0

我最终得出的结论是,在浏览器委托方法中单独使用字典并没有让我有任何收获。对我有用以及我对其他人的建议是创建一个对象,该对象代表可以传递到浏览器中的字典。

例如:

class DictionaryItem {
    let name: String
    var children: [DictionaryItem]? 
    var rawData: AnyObject?

    init(name: String) {
        self.name = name
    }
}

遍历字典并将这些对象添加到浏览器将用作其数据源的数组中。

于 2016-06-06T23:29:18.073 回答