cocoa - 获取 NSCollectionView 的首选大小

标签 cocoa nsscrollview nscollectionview

我想将 NSCollectionView 置于其封闭的 ScrollView 中(水平和垂直)。

如何确定 Collection View 的理想大小以便所有项目 View 都适合?

当包含在 ScrollView 中时, Collection View 似乎总是会调整自身大小以填充整个文档 View 。

此外,如果未包含在 ScrollView 中,则添加新项目时 Collection View 不会更改其框架。

最佳答案

我建议您自定义 NSCollection View。你所能做的就是重写 NSCollectionView 的“drawRect”方法并插入它自己的矩形。以下是解决您问题的方法

实现步骤:

  1. 创建一个类“NSModifiedCollectionView”,它继承自 NSCollection View 并执行以下操作。

    @interface NSModifiedCollectionView : NSCollectionView
    
    @end
    
    @implementation NSModifiedCollectionView
    
    - (void) drawRect:(NSRect)dirtyRect
    {
        //You can inset more than 9.0 as per your needs but this will make you fit exactly 
        NSRect insetRec = NSInsetRect(dirtyRect, 9.0, 9.0);
    
        [super drawRect:insetRec];}
    

2:将 NSCollectionView 从对象列表拖放到 Xib 中,并将其自定义类修改为“NSModifiedCollectionView”。现在运行并检查它应该按您的预期工作。

关于cocoa - 获取 NSCollectionView 的首选大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16770563/

相关文章:

swift - NSCollectionView 自定义布局启用滚动

objective-c - NSScrollView:覆盖系统显示设置?

html - Cocoa WebView 不会在 OSX 10.8 上渲染所有图像

iPhone - NSDate 格式 : strange values for times and timezones

objective-c - 在 NSScrollView 中仅自动隐藏水平滚动条

cocoa - NSCollectionViewItem 子类中的自定义 socket

objective-c - NSCollectionView 不显示其内容

swift - 使用 NSCollectionView 时断言失败

macos - 如何在 Mac OS X 上以编程方式格式化 Pen Drive?

objective-c - 带有自定义图形的无边框 NSWindow 周围出现意外边框