быстрое расположение NSCollectionView неправильно после изменения размера окна - PullRequest
0 голосов
/ 20 октября 2018

У меня есть NSCollectionView с использованием разделов и макета потока.Первоначальный макет в порядке, но изменение размера окна вызывает перемещение вертикального положения элементов представления коллекции (относительно верхней границы окна).Разрывы секций остаются постоянными относительно верхней границы окна (хорошо).Но элементы, перемещающиеся вверх, заставляют их перекрывать секции и, в конечном итоге, выходить из области окна, когда я уменьшаю высоту окна.

enter image description here

enter image description here

Я думаю, это связано с тем, как макинтош использует дно в качестве источника координат.Изменение размера окна приводит к смещению нижней границы окна.

Для справки здесь я настраиваю свое представление коллекции, включая стандартную компоновку потока.

    fileprivate func configureCollectionView() {
    let nib = NSNib(nibNamed: "MonitorViewItem", bundle: nil)
    mapCollectionView.register(nib, forItemWithIdentifier: NSUserInterfaceItemIdentifier("MonitorViewItem"))
    let flowLayout = NSCollectionViewFlowLayout()
    flowLayout.itemSize = NSSize(width: 100.0, height: 40.0)
    flowLayout.sectionInset = NSEdgeInsets(top: 25.0, left: 10.0, bottom: 10.0, right: 10.0)
    flowLayout.minimumInteritemSpacing = 10.0
    flowLayout.minimumLineSpacing = 10.0
    mapCollectionView.collectionViewLayout = flowLayout

}

Я попытался сделать недействительным макет в своем изменении размера окнафункция делегата.Мой оператор печати подтверждает, что он вызывается при изменении размера окна, но аннулирование макета не решает проблему.

extension MapWindowController: NSWindowDelegate {
    func windowDidResize(_ notification: Notification) {
        print("got resize")
        mapCollectionView.collectionViewLayout!.invalidateLayout()
    }
}

До сих пор я не пытался создать подкласс для своего представления и переопределить isFlipped.

Вот моя иерархия окон в моем .xib:

Window
  View
    Bordered Scroll View - Collection View
       Clip View
          Map Collection view
             Collection View Flow layout
          scroller
          scroller

Есть предложения по исправлению вертикального положения элемента представления коллекции при изменении размера nswindow?

...