NSCollectionViewFlowLayout collectionViewContentSize обновляется, но фрейм представлений коллекции не обновляется
У меня есть несколько пользовательских NSCollectionViewFlowLayouts, некоторые из которых имеют вертикальное направление, а другие - горизонтальное.
При настройке горизонтальной компоновки фрейм представлений коллекции правильно устанавливает высоту и ширину в зависимости от содержимого, однако при обновлении макета до вертикальной компоновки фрейм сохраняет размер содержимого предыдущих макетов.
Изменение размера окна вручную с помощью мыши приводит к правильному отображению макета, но я не уверен, почему это не корректно обновляется программно. Правильный размер вызывается из размера содержимого макетов, в WWDC "Что нового в NSCollectionViews" вы можете увидеть, что это не проблема.
Та же самая проблема может быть замечена в WWDC Apples 2015, что нового в примере проекта NSCollectionViews, найденном по адресу https://developer.apple.com/library/prerelease/mac/samplecode/CocoaSlideCollection/CocoaSlideCollectionUsingNSCollectionViewonOSX10.11.zip
При переключении между свернутым макетом и круговым макетом вы увидите, что изначально высота неверна, и наоборот.
Я не уверен, является ли это ошибкой, или я что-то упускаю в реализации.
Обновление: это выглядит как ошибка ОС, в то время как мы должны были поработать над этим. Публикуйте здесь, чтобы другие могли видеть решение межпозвоночного промежутка или, возможно, предложить других на основе описания выше. ( https://github.com/zenangst/Blueprints/pull/93)
1 ответ
Обновление: это выглядит как ошибка ОС, в то время как мы должны были поработать над этим. Публикуйте здесь, чтобы другие могли видеть решение межпозвоночного промежутка или, возможно, предложить других на основе описания выше. ( https://github.com/zenangst/Blueprints/pull/93)
"Это добавляет" ужасный "хак, чтобы получить размер контента для обновления на macOS при переходе между макетами. Он временно изменит размер окна, чтобы убедиться, что представление документа представления прокрутки приобретает новый размер. '