我有一个NSOutlineView。我已经设置了委托和数据源。我执行outlineView.reloadData()
你可以像这样描绘我的大纲视图:
A室 - 灰
- Brock
B室 - Misty
- 橡树教授
我对数据进行了一些编辑(而不是对outlineView进行编辑)并将“Misty”移动到A室。
A室 - 灰
- 布洛克 - Misty
B室 - 橡树教授
执行outlineView.reloadData()
后,它会正确显示更新后的数据。
然后,我改变了
outlineView.reloadData()
与
outlineView.moveItem(at: 0, inParent: room[1], to: 2, inParent: room[0])
但没有任何反应。我检查了数据源,但没有调用数据源。只有当我outlineView.reloadData()
时才会调用它。
我也尝试outlineView.reloadItem()
,但它也没有用。
知道为什么outlineView.moveItem()
不起作用?
答案 0 :(得分:0)
我无法相信Cocoa / Appkit框架与UIKit相比有多不可靠。
{{1}}不起作用的原因是因为NSOutlineView仅支持Objective-C NSObject。你不能使用普通的Swift类作为NSOutlineView的项目对象。