Это может быть общая дискуссия вместо реального вопроса. Когда я начал использовать NSTableView и NSOutlineView, я подумал: о, экземпляр NSView может делать почти все. Поэтому я возвращаю экземпляр NSView в своем делетете и dataSource.Почему NSTableView использует NSCell вместо NSView?
Из couse это не сработало, и я понял, что NSTableView объединяет экземпляры NSCell, которые наследуются непосредственно из NSObject.
Я понял, что может быть важно понять, почему Cocoa построил NSTableView на основе NSCell, но NSView. Но несколько документов ясно объясняют это. Поэтому я перехожу к Stackoverflow. Кто-нибудь знает это? Спасибо вам заранее!
Обратите внимание, что вы можете использовать ячейки 'NSView' вместо ячеек NSCell со времен Lion; см. http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/TableView/ViewBasedTables/ViewBasedTables.html. Я считаю, что «NSTableView» раньше не использовал ячейки «NSView» из-за производительности, но я не совсем уверен в этом. –
@Bavarious Правильно на нескольких фронтах; Первоначально NSTableView не использовал представления в качестве ячеек, потому что представления сравнительно * очень дороги. Ячейки - это не что иное, как «эй, рисовать в этом случайном прямоугольнике здесь», не имея собственного контекста рисования. – bbum
@Bavarious Привет, снова! Проблема с производительностью ... Я об этом не думал. Документ, который вы связали, будет хорошим. Ранее я видел [TableViewPlayground] (http://developer.apple.com/library/mac/#samplecode/TableViewPlayground/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010727). Но это было слишком сложно для меня, поэтому я бросил изучать его. Похоже, я должен прочитать его снова. –