2010-02-22 28 views
6
Ben iWork farklı şablon seçebilirsiniz Sayfalar şablon seçimi ekrana sahip ve her görüntüleme farklı bilgiler içerdiğinden nasıl benzer bir şey isteyen pm

gösterilecek görüntülemek fark boyutları vs.NSCollectionView uygulamasında farklı görünümlere sahip olmanın bir yolu var mı?

Ben NSCollectionView sınıflara ve belirleyici denedi vardır newItemForRepresentedObject yöntemini kullanarak (itemPrototype görünümü Interface Builder kullanmanın aksine), ancak bazı nedenlerle görünümleri doğru şekilde konumlandırmaz ve mevcut öğe sayısı için doğru görüntüleme sayısını göstermez. İşte benim kodum. Birisinin bunu yapmak için daha iyi bir yolu olabileceğini umuyordum ya da bunun nasıl yapıldığına dair bir örnek.

personView ve şirket Görünümü, IB'de görüntülenen IBOutletleri olan alt sınıf NSCollectionView'daki özelliklerdir.

-(NSCollectionViewItem *)newItemForRepresentedObject:(id)object{ 
NSCollectionViewItem *collectionViewItem = [[NSCollectionViewItem alloc] init]; 

[collectionViewItem setRepresentedObject:object]; 

if([[object valueForKey:@"company"] boolValue] == YES){ 
    NSView *view = [companyView retain]; 
    [collectionViewItem setView:companyView]; 
}else{ 
    [collectionViewItem setView:personalView]; 
} 

return collectionViewItem; 

}

+0

Belki de bu yardımcı olabilir: http://stackoverflow.com/questions/1210352/how-do-i-bind-programatically-in-the-view-subclass-of-my-nscollectionview?rq=1 –

cevap

0

(Hatta farklı büyüklükteki madde manzaralı NSCollectionView yapmak mümkün görünmemektedir; her boyut bazı "ana" boyutunun katı veya tamsayı böleni olması gerekiyor ve olur Bir ızgarada oluşturmanın mümkün olduğundan emin olmak için masif öge kontrolü ve yeniden düzenleme yapmanız gerekir. Doğru soruyu sorduğundan emin misiniz?)

Ayrıca, hiçbir şey göremiyorum iWork'taki gibi: şablon seçicideki tüm görünümler aynıdır. (Her ne kadar NSImageView alt görünümleri farklı boyutlarda olsa da.) Mümkün olduğunca aynı görünümü kullanarak ve alt görünümlerini uygun şekilde değiştirerek tavsiye ederim. Örneğin, metin alanlarının "gizli" özelliğini bağlamak veya bir görüntü görünümünün genişliğini değiştirmek kolaydır. Her iki sınıf için çalışan, temsil edilen nesneye bağlı olarak kendini uygun şekilde değiştiren tek bir görünüm oluşturamaz mısınız?

İlgili konular