У меня есть подкласс NSCollectionViewItem
, называемый ZMSDKThumbnailCollectionViewItem
. Используя это, я хочу отобразить пользовательское представление, представленное ZMSDKThumbnailVideoItemView
.
ZMSDKThumbnailCollectionViewItem
представлен файлом XIB. Он содержит ровно один NSView
, класс которого установлен (с помощью Identity Inspector) на ZMSDKThumbnailVideoItemView
.
@interface ZMSDKThumbnailCollectionViewItem : NSCollectionViewItem
@property (assign) IBOutlet ZMSDKThumbnailVideoItemView *videoItemView;
@end
В моем NSCollectionViewDataSource
я создаю такие элементы:
- (NSCollectionViewItem *)collectionView:(NSCollectionView *)collectionView itemForRepresentedObjectAtIndexPath:(NSIndexPath *)indexPath
{
ZMSDKThumbnailCollectionViewItem* item = [collectionView makeItemWithIdentifier:@"ZMSDKThumbnailCollectionViewItem" forIndexPath:indexPath];
ZMSDKThumbnailVideoItemView* thumbnailView = [_thumbnailVideoArray objectAtIndex:indexPath.item];
// IBOutlet videoItemView
item.videoItemView = thumbnailView;
return item;
}
Проблема: хотя _thumbnailVideoArray
содержит элементы, в представлении коллекции ничего не отображается.
Когда я изменяю ZMSDKThumbnailCollectionViewItem
, чтобы он содержал NSLabel
вместо ZMSDKThumbnailVideoItemView
, элементы отображаются правильно .
Вопрос: каким образом я должен создать NSCollectionViewItem
для отображения пользовательского представления? Правильно ли установить класс содержащего представления в файле XIB на ZMSDKThumbnailVideoItemView
как и я?