Tôi muốn một cái gì đó tương tự như cách iWork có màn hình chọn mẫu cho Trang khi bạn có thể chọn các mẫu khác nhau và mỗi chế độ xem chứa thông tin khác nhau có kích thước khác nhau, vv. bằng cách sử dụng phương thức newItemForRepresentedObject (trái ngược với việc sử dụng khung nhìn của giao diện itemPrototype), nhưng vì một lý do nào đó không định vị chính xác các khung nhìn, và nó không hiển thị số lần xem chính xác cho số mục hiện tại. Đây là mã của tôi. Tôi đã hy vọng một ai đó có thể có một cách tốt hơn để làm điều này, hoặc một ví dụ về cách thức này được thực hiện.Có cách nào để có các chế độ xem khác nhau trong NSCollectionView không?
personXem và companyView là các thuộc tính trong NSCollectionView được phân lớp, đó là IBOutlets cho chế độ xem trong IB.
-(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;
}
Có thể điều này có thể hữu ích: http://stackoverflow.com/questions/1210352/how-do-i-bind-programatically-in-the-view-subclass-of-my-nscollectionview?rq=1 –