Objective c 如何正确使用NSCollectionView和Outlet?

Objective c 如何正确使用NSCollectionView和Outlet?,objective-c,cocoa,interface-builder,cocoa-bindings,nscollectionview,Objective C,Cocoa,Interface Builder,Cocoa Bindings,Nscollectionview,我正在拼命尝试连接NSView的控件,这些控件将使用Outlet驻留在NSCollectionView中。集合视图使用NSArrayController提供 我在单独的NIB文件中创建了NSView,在NSCollectionViewItem的实现中,我重写了copyWithZone以加载它: -(id)copyWithZone:(NSZone *)zone { id result = [super copyWithZone:zone]; [NSBundle loadN

我正在拼命尝试连接NSView的控件,这些控件将使用Outlet驻留在NSCollectionView中。集合视图使用NSArrayController提供

我在单独的NIB文件中创建了NSView,在NSCollectionViewItem的实现中,我重写了copyWithZone以加载它:

    -(id)copyWithZone:(NSZone *)zone
{
    id result = [super copyWithZone:zone];

    [NSBundle loadNibNamed:@"InputView" owner:result];

    return result;
}
我根据这一点使用了这种方法

不幸的是,情况就是这样:

NSView如下所示:

NSCollectionView位于NSScrollView中,滚动条设置为自动启用。 但正如你所见,这里没有滚动条

我真的不明白我需要做什么才能让NSCollectionView知道它的NSView的维度


以前,当我没有单独的NIB文件时,它可以正常工作,但之后我无法从视图连接到项目:-(

阵列控制器中有多少项目?假设控制器中至少有14个项目(每个项目一个视图),您的输出看起来与您描述的内容相符.尺码刚刚过了。不清楚你想解决哪个问题


可能您正在寻找一个网格,因此需要调用
setMaximumNumberOfColumns:
?或者您的视图没有按预期调整大小(请检查
-maxItemSize
-minItemSize
)?

我忘了提到NSCollectionView位于NSScrollView中,并且滚动条设置为自动启用。但是正如您所看到的,没有滚动条。我真的不明白我需要做什么,所以NSCollectionView知道其NSView的大小。我希望我能把问题弄清楚一点。+1.是的,如果您没有得到如果所需的布局,则肯定需要调用setMinItemSize:和/或setMaxItemSize:。如果minItemSize为{0,0},则集合视图将尝试将所有视图放置在可见区域中,并且不会滚动。在IB中,您还可以尝试关闭自动调整大小弹簧和支柱。我认为NSCollectionView使用这些作为提示,以确定默认的minItemSize和maxiitemsize设置应该是什么。如果关闭自动调整大小,我会想象NSCollection视图将保持项目的大小与IB中的视图相同。谢谢kperryua。我只是尝试了一下,但不幸的是它对我不起作用。似乎除了设置最小项目大小之外别无选择。说明链接已断开。这是一篇相当老的帖子。我在这里写了一些关于它的内容,可能会对您有所帮助: