水平滚动NSCollectionView在窗口调整大小之前不会滚动

时间:2018-08-15 21:24:29

标签: swift macos

我有一个水平滚动的NSCollectionView。这些项目已创建,但直到我在水平方向上手动调整窗口大小后才可滚动。之后,我滚动良好。有人知道如何解决此问题吗?我查看了这个问题(question link)并尝试了建议的解决方案,但我认为这是一个不同的问题,因为它在调整窗口大小之后可以工作。

编辑: 集合视图在表格视图单元格中。我在同一应用程序中有其他集合视图(尽管是垂直滚动且不在tableview单元格中),并且它们工作正常。

2 个答案:

答案 0 :(得分:0)

我只需将其添加到我的collectionView中即可解决该问题:

[self.yourCollectionView setFrameSize:self.yourCollectionView.collectionViewLayout.collectionViewContentSize];

答案 1 :(得分:0)

多年以来,我一直在经历类似的问题,最终发现这是由Xcode引起的。

使用Xcode强制退出应用程序时(通过在应用程序运行时单击 Run Stop 来退出),Xcode会保存窗口的框架并在下次启动时恢复,甚至当您的窗口未配置为自动保存其框架时。

这对开发有利,但是由于某些原因,这会导致滚动视图的文档视图(主要是集合视图)在下一次运行的应用程序中不使用正确的边界。

许多人建议手动设置集合视图的frameSize并不总是可行。但是,如果您正常退出应用程序:

  • 单击应用程序菜单,然后选择退出应用程序名称
  • 使用键盘快捷键⌘Q
  • 右键单击Dock图标,然后选择退出(是否使用
  • 强制退出应用程序窗口(⌘⌥⎋)中强制退出
  • ...

任何事情都将在您下次运行的应用程序中正常运行(包括从Xcode启动)。