Вопрос

Как программно установить размер представления NSCollectionViewItem?

Я попытался сделать это в подклассе NSCollectionView:

@implementation CustomCollectionView

- (NSCollectionViewItem *)newItemForRepresentedObject:(id)object {

    NSCollectionViewItem *newitem = [[self itemPrototype] copy];
    [newitem setRepresentedObject:object];  
    NSView *itemview = [newitem view];
    [itemView setFrame:NSMakeRect([itemView frame].origin.x, [itemView frame].origin.y,         [itemView frame].size.width, 500)];
    return newitem;
}

@end

Однако этот код не имеет никакого эффекта. Я попытался создать подклассы своего NSView, который я использую для NSCollectionViewItem, и добавить setFrame: к методу initWithCoder, но я получаю аварийный сбой EXC BAD ACCESS, когда я делаю это.

Это было полезно?

Решение

Вы можете воспользоваться этой альтернативой NSCollectionView с открытым исходным кодом от Стивена Дегутиса, которая, по совпадению, я думаю, была только что опубликована сегодня на GitHub (я заметил это сегодня через Twitter):

http://github.com/sdegutis/SDListView

Похоже, это позволяет вам иметь элементы разной высоты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top