NSOutlineView moveItem () и reloadItem () не работают - PullRequest
0 голосов
/ 03 июня 2018

У меня есть NSOutlineView.Я установил делегата и источник данных.Он отображает все данные правильно после того, как я outlineView.reloadData()

Вы можете изобразить мой контурный вид следующим образом:

Комната A
- Ясень
- Брок

Комната B
- Мисти
- Профессор Оук

Я занимаюсь некоторым редактированием данных (а не контурного обзора)и переместите «Мисти» в комнату А.

Комната А
- Ясень
- Брок
- Мисти

Комната 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 голосов
/ 03 июня 2018

Я не могу поверить, насколько ненадежный фреймворк Cocoa / Appkit сравнивается с UIKit.

Причина, по которой moveItem() не работает, заключается в том, что NSOutlineView поддерживает только объект NSObject Objective C.Вы не можете использовать простой класс Swift для объекта item NSOutlineView.

...