未知的segue关系:使用NSCollectionView的原型

12 storyboard nscollectionview swift xcode6

只需向Storyboard添加一个NSCollectionView,代码就不会编译错误:未知的segue关系:Prototype.

这是Swift/XCode6-beta4的已知错误还是我错过了什么?

Dam*_*aux 7

这是一个已知的错误,在Xcode 6 beta-5发行说明中提到(有一个解决方法):

在向其添加NSCollectionView后,故事板可能无法编译.(17009377)!

解决方法:选择包含NSCollectionView的xib并将其加载到基于Storyboard的View中.


gbd*_*vid 6

Xcode 7 beta 6更新(参见发行说明):

Interface Builder支持10.11中的新NSCollectionView API,使用iOS上的dataSource和布局.(18997303)

  • 解决方法:无法在Interface Builder中配置原型项.在代码中使用 - [NSCollectionView registerClass:forItemWithIdentifier:]或 - [NSCollectionView registerNib:forItemWithIdentifier:].

有人曾尝试过使用它吗?我应该只在我的故事板上添加一个空的集合视图,然后为collectionviewitem创建一个nib文件,最后通过代码链接它?


Xcode 7.1 beta 3更新

我今天已经下载并测试了新的测试版,问题仍然存在.然而,他们奇怪地从发行说明中删除了变通方法说明,好像他们已修复它...


Lar*_*erg 5

当您已经使用故事板时,实际上不需要创建额外的XIB文件.

  1. 删除之间的连接NSCollectionViewNSCollectionViewItem

  2. 为视图项提供标识符

  3. 在您的周围以编程方式设置项目原型NSViewController:

@IBOutlet weak var collectionView: NSCollectionView!

override func viewDidLoad() {
    self.collectionView.itemPrototype = self.storyboard?.instantiateControllerWithIdentifier("collectionViewItem")
        as NSCollectionViewItem
}
Run Code Online (Sandbox Code Playgroud)

这样可以将所有UI视图保存在一个位置,从而提供了一个比使用外来XIB文件更好的解决方法.