Может NSCollectionView автоизменять размер ширины своих подпредставлений для отображения одного столбца

Я имею NSCollectionView это содержит набор CustomViews. Первоначально это разместило подпредставления рядом в столбцы и строки как сетка. Я затем установил Columns свойство в IB к 1, поэтому теперь это просто отображает их один за другим в строках. Однако даже при том, что мой CustomView 400 пкс шириной, это установлено автоизменить размер, NSCollectionView 400 пкс шириной, и это установлено на 1 столбец, подпредставления оттянуты приблизительно 80 пкс шириной.

Я знаю, что могу обойти это путем вызова:

CGFloat width = collectionView.bounds.size.width;
NSSize size = NSMakeSize(width, 85);
[collectionView setMinItemSize:size];
[collectionView setMaxItemSize:size];

Но вставляя этот код awakeFromNib метод моего WindowController только устанавливает корректную ширину, когда программа запускается. Когда я изменяю размер окна (и NSCollectionView автоизменяет размер, поскольку я указал), CustomViews остаются в их первоначально ширина набора.

Я рад заботиться об изменении размеров подпредставлений сам если потребуется, но я довольно плохо знаком с Какао и, может казаться, не нахожу статей, объясняющих, как сделать такую вещь. Кто-то может указать на меня в правильном направлении?

Anthony

9
задан Andriy 3 June 2017 в 07:57
поделиться

1 ответ

Замечательный блог Мэтта Галлахера Cocoa with Love собирается решить эту проблему. На этой неделе он поделился деталями привязки одноколоночного представления, подобного тому, о котором идет речь:

http://cocoawithlove.com/2010/03/designing-view-with-bindings.html

В следующей записи он обещает поделиться остальной частью реализации, которая должна дать вам то, что вы ищете.

(Я должен отметить, что он подклассифицирует NSView напрямую и повторно реализует многие функции NSCollectionView. Похоже, это обычное дело; не многие любят подклассифицировать NSCollectionView.)

Edit: Похоже, он нарушил свое обещание... мы так и не получили это сообщение. Вместо него смотрите ответ tofutim'а ниже.

-4
ответ дан 4 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: