NoteNumberOfRowsChanged из NSOutlineView не эквивалентен reloadData - PullRequest
2 голосов
/ 06 мая 2011

Я добавляю еще Object к моим NSOutlineView NSOutlineViewDataSource и звоню [myOutlineView noteNumberOfRowsChanged]. Если я правильно прочитал документацию, это должно заставить OutlineView понять, что я добавил одну строку и перерисовал себя правильно. Но вместо этого ничего не происходит.

Если я звоню [myOutlineView reloadData], это работает, но согласно документации reloadData имеет гораздо более высокие издержки, чем noteNumberOfRowsChanged (так как он перезагружает все данные ... дух)

Я не использую привязки, я сам поставляю NSOutlineViewDataSource.

Кто-нибудь знает, что я делаю не так?

1 Ответ

1 голос
/ 06 мая 2011

Из документации reloadData: :

Если вы просто хотите обновить скроллер, используйте noteNumberOfRowsChanged; если высота набора строк изменения, использовать noteHeightOfRowsWithIndexesChanged:.

Для меня это звучит так noteHeightOfRowsWithIndexesChanged: гарантирует, что только что добавленный объект виден в представлении

В разделе обсуждения документации reloadData: также упоминается способ обновить одну строку. Но, похоже, reloadData: - единственный вариант, если вы добавляете новые объекты.

...