2013-03-25 20 views
14

Anlayışım yanlış değilse, hücre tabanlı NSTableView ve görünüm tabanlı NSTableView aynı türde bir örnektir. Ardından, cpu hücre tabanlı ve görüntü tabanlı nasıl ayırt edilir?Hücre tabanlı NSTableView ve görüntüleme tabanlı NSTableView arasındaki fark nedir?

Bildiğim kadarıyla, delege yöntemi hücre tabanlı ve görünüm tabanlı arasında farklıdır. Hücre tabanlı NSTableView'ın tableView:objectValueForTableColumn:row: ihtiyacı var ve görüntüleme tabanlı NSTableView'ın tableView:viewForTableColumn:row: ihtiyacı var. NSTableView örneğini hücre tabanlı veya görünüm tabanlı davranmaya karar veren bir şey var mı?

cevap

18

açıklama aşağıdaki ek olarak bir tablo görünümünde NSCell bir alt sınıf olması gerekirdi içinde OS X sürüm 10.6 yılında http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/TableView/Introduction/Introduction.html

geçmesi ve önceki her bir hücre için öneririm. Bu yaklaşım, genellikle geliştiricinin kendi NSCell alt sınıflarını yazmasını gerektiren karmaşık özel hücreleri tasarlarken sınırlamalara neden olmuştur. Ek olarak, ilerleme görünümleri gibi animasyonlar yapmak çok zordu.

OS X sürüm 10.7'de tablo görünümleri yeniden tasarlandı ve şimdi tek tek hücreler olarak görünümleri kullanarak destekleniyor. Bunlar, görünüm tabanlı tablo görünümleri olarak adlandırılır. Görünüm tabanlı tablo görünümleri, Xcode 4.0'ın Arabirim Oluşturucu bölümünde özel hücreler tasarlamanıza olanak tanır. Kolay tasarım zaman düzeninin yanı sıra değişiklikleri canlandırmayı ve çiziminizi özelleştirmeyi kolaylaştırır. Hücre tabanlı tablo görünümlerinde olduğu gibi, görünüm tabanlı tablo görünümleri, seçim, sütun sürükleme ve diğer kullanıcı tarafından beklenen tablo görüntüleme davranışlarını destekler. Tek fark, geliştiriciye tasarım ve uygulamada daha fazla esneklik verilmesidir.

Görünüm tabanlı ve hücre tabanlı tablo görünümleri oluşturma ve sütun ekleme, Arabirim Oluşturucu'da aynı teknikleri kullanır. Tek tek hücreleri sağlarken, tablo görünümünün içeriğini doldururken ve tablo görünümü görünümünü özelleştirirken uygulama kodunuzda farklılıklar oluşur. Ayrıca, kakao bağlama teknikleri iki uygulama arasında tamamen farklıdır.

İlgili konular