objective-c - NSCollectionView 网格只显示一行

标签 objective-c swift macos cocoa nscollectionview

我有一个带有以下参数的 NSCollectionView:

enter image description here

并且有一个自定义的 NSCollectionViewItemWebView 来显示 html 页面

extension ViewController : NSCollectionViewDataSource {

    func numberOfSections(in collectionView: NSCollectionView) -> Int {
        return 5
    }

    func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
        return 1
    }

    func collectionView(_ itemForRepresentedObjectAtcollectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {

        let item = htmlNotificationsCollectionView.makeItem(withIdentifier: "htmlNotificationCollectionViewItem", for: indexPath)
        return item
    }
}

我的代码可以正常工作,但它只显示一项!并忽略 numberOfSections 以垂直显示

如果我将 numberOfItemsInSection 更改为 3,它会显示 3 个项目,但水平显示。

我需要这样的布局:

enter image description here

最佳答案

您应该以编程方式设置 maximumNumberOfColumns:

let layout = NSCollectionViewGridLayout()
    layout.maximumNumberOfColumns = 1
    collectionView.collectionViewLayout = layout

(由于某些原因,当您在 Storyboard 上设置 Grid 属性时它不起作用)

关于objective-c - NSCollectionView 网格只显示一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45001196/

相关文章:

ios - 使用 AVCaptureSessionPreset 时如何更改图像质量

ios - 如何创建帮助覆盖图,iOS

swift - 通过在 Swift 中使用高阶函数,这是否会影响 Big O 的时间或空间复杂度以提高效率?

iOS 联系人框架 : How to fetch contacts by phone number

macos - 在当前窗口/ View Controller 的不同窗口/ View Controller 中执行代码

ios - 5 秒后调用一个方法。没有 NSTimer

java - 如何检查新的 JSON 文件是否可用?

objective-c - 防止在 Swift 中子类化 Objective-C 类

swift - 使用 ARKIT 拍摄视频

java - 如何将/usr/libexec/java_home指向自定义jdk安装?