我试图在OS X 10.11上的NSBrowser
中表示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()
的{{1}}方法,但这会在这些委托方法中导致无限循环。我看看像Finder这样的应用程序,我很好奇他们如何实现我想要的路径。
答案 0 :(得分:0)
我最终得出的结论是,使用字典本身与浏览器委托方法并没有让我到任何地方。对我有用的,以及我对其他人的推荐,是创建一个表示可以传递到浏览器的字典的对象。
例如:
class DictionaryItem {
let name: String
var children: [DictionaryItem]?
var rawData: AnyObject?
init(name: String) {
self.name = name
}
}
遍历字典并将这些对象添加到浏览器将用作其数据源的数组中。