NSOutlineView moveItem()和reloadItem()不起作用

时间:2018-06-03 18:01:27

标签: cocoa nstableview appkit nsoutlineview

我有一个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()不起作用?

1 个答案:

答案 0 :(得分:0)

我无法相信Cocoa / Appkit框架与UIKit相比有多不可靠。

{{1}}不起作用的原因是因为NSOutlineView仅支持Objective-C NSObject。你不能使用普通的Swift类作为NSOutlineView的项目对象。