【发布时间】:2017-05-14 16:08:04
【问题描述】:
我在 macOS 上使用 swift 3 和 Xcode 8。 我使用 nsoutlineview(没有 TreeController 并且处于基于 View 的模式)
我想意识到,始终可以打开一个带有子元素的根元素。如果我打开另一个,实际打开的根元素应该关闭,新的将打开。
为此,我尝试了以下代码:
@IBAction func outlineViewClickedRow(_ sender: NSOutlineView) {
for x in (0..<outlineView.numberOfRows) {
outlineViewn.collapseItem(outlineView.item(atRow: x), collapseChildren: true)
}
outlineView.expandItem(outlineView.item(atRow: outlineView.selectedRow))
}
此 IBAction 已分配给我的 outlineView。 基本上效果不错。
但问题是:
- 如果我点击一个实际打开的根元素,我的函数将再次打开它。这看起来不专业...
- 而且这个“点击”功能也适用于不可展开的元素 - 这也不太好
我尝试了这段代码来解决第一点:
if (outlineView.isItemExpanded(outlineView.selectedRow) == true) {
print("isExpanded")
}
但打印结果永远不会显示。 itItemExpanded 始终为 false ...
第二点同样的问题:
if (outlineView.isExpandable(outlineView.selectedRow) == true) {
print("isExpandable")
}
是否可扩展总是“假”
【问题讨论】:
-
没人知道吗?