我想根据https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKit/#10_11CollectionView使用来自Swift的新API模型的NSCollectionView。由于我更喜欢在IB中尽可能多地做,我想使用内容绑定,并在链接页面上按照绑定内容到NSCollectionView(自WWDC种子以来的新内容)一节。
我已将NSCollectionView从对象库中拉到我的故事板中,然后通过连接检查器删除了另外生成的 prototype segue,并删除了生成的NSCollectionViewItem。然后,我将Collection View的布局设置为 Flow ,并将集合视图连接到我的视图控制器的插座。
接下来,我使用Xcode的视图模板创建了一个单独的.xib文件,并放入了必要的视图。我还引入了“Collection View Item”对象。
然后,我调整了视图控制器的viewDidLoad方法,用集合视图注册nib。
override func viewDidLoad() {
super.viewDidLoad()
let nib = NSNib(nibNamed: "Item", bundle: nil)!
collectionView.registerNib(nib, forItemWithIdentifier: "")
}
最后,我已将我的数组控制器连接到NSCollectionView的内容绑定。
但是,当我尝试启动应用程序时,会抛出异常:
[NSNib _initWithNibNamed:bundle:options:]无法在bundle NSBundle中加载nibName:NSCollectionViewItem
仅当我的数组具有实际内容时才会发生异常,因此只有在需要实例化CollectionViewItem时才会发生。
我在这里做错了什么?
答案 0 :(得分:6)
问题是,在Collection View Item的.xib中, Item对象的视图出口需要链接到根视图。此外,需要在 Item对象的Attributes Inspector中设置Nib Name。