只需在故事板中添加NSCollectionView,代码就不会编译错误:未知的segue关系:原型。
这是Swift / XCode6-beta4的已知错误还是我错过了什么?
答案 0 :(得分:7)
这是一个已知错误,在release notes of Xcode 6 beta-5中提到(带有解决方法):
添加NSCollectionView后,故事板可能无法编译 它。 (17009377)!
解决方法:选择包含NSCollectionView的xib并加载它 进入基于故事板的视图。!
答案 1 :(得分:6)
Xcode 7 beta 6更新(see release notes):
Interface Builder支持10.11中的新NSCollectionView API,使用iOS上的dataSource和布局。 (18997303)
有没有人曾尝试过使用它?我应该只在我的故事板上添加一个空的集合视图,然后为collectionviewitem创建一个nib文件,最后通过代码链接它吗?
Xcode 7.1 beta 3的更新
我今天已经下载并测试了新的测试版,问题仍然存在。然而,他们奇怪地删除了release notes中的变通方法说明,好像他们已经修复了它......
答案 2 :(得分:5)
当您已经在使用故事板时,实际上不需要创建额外的XIB文件。
删除NSCollectionView
和NSCollectionViewItem
为视图项提供标识符
在您周围的NSViewController
:
@IBOutlet weak var collectionView: NSCollectionView!
override func viewDidLoad() {
self.collectionView.itemPrototype = self.storyboard?.instantiateControllerWithIdentifier("collectionViewItem")
as NSCollectionViewItem
}
这样可以将所有UI视图保存在一个位置,从而提供了一个比使用外来XIB文件更好的解决方法。
答案 3 :(得分:3)
如果您使用的是OSX 10.11 SDK,Apple's release notes for it中的以下信息将指示不再填充itemPrototype
属性(当然假设您的最低部署目标是10.11):
要使用NSCollectionView的新API模型,可以通过设置NSCollectionView的“collectionViewLayout”属性来指定布局,并提供“dataSource”或将CollectionView的“内容”绑定到NSArray或NSArrayController(请参阅“将内容绑定到NSCollectionView” “,下面)。您还必须断开并丢弃NSCollectionView的“itemPrototype”,这是10.10及更早版本的API模型的遗迹。