NSCell
è stato introdotto per motivi di prestazioni nei giorni NeXTSTEP su macchine con pochi megabyte di memoria, quando avere un intero NSView
per ogni cella di tabella era una stravaganza insostenibile. In iOS, le visualizzazioni delle tabelle sono state drasticamente semplificate utilizzando le viste anziché le celle. In OS X 10.7, Apple ha iniziato a spostare OS X nella stessa direzione, e finalmente ci arriviamo.
NSCell
è sempre stato un grosso problema per OS X, non ultimo perché utilizza NSCopyObject()
, one of the most annoying functions NeXT ever wrote. Fornisce inoltre un singolo editor di testo (NSText
) condiviso da tutte le viste di immissione testo. Se non si presta attenzione, questo può portare a errori di confusione quando le viste interferiscono tra loro tramite questo oggetto condiviso. La separazione e la duplicazione tra i controlli e le celle è sempre stata fonte di confusione tra gli sviluppatori di OS X.
C'era una volta, era necessario, ma quei giorni hanno passato da molto tempo. Nella maggior parte dei casi non dobbiamo più preoccuparci del "sovraccarico di una sottoclasse NSView completa". In particolare dal momento che l'aggiunta di CALayer
ha reso il disegno molto più veloce.
fonte
2014-10-30 04:07:41