Просто добавив NSCollectionView в Storyboard, код не будет компилироваться с ошибкой: Неизвестное отношение перехода: прототип.
Это известная ошибка Swift/XCode6-beta4 или я что-то упустил?
Просто добавив NSCollectionView в Storyboard, код не будет компилироваться с ошибкой: Неизвестное отношение перехода: прототип.
Это известная ошибка Swift/XCode6-beta4 или я что-то упустил?
Это известная ошибка, и она упоминается (с обходным путем) в заметках о выпуске Xcode. 6 бета-5:
Раскадровка может не скомпилироваться после добавления к ней NSCollectionView. (17009377)!
Обходной путь: выберите xib, который включает NSCollectionView, и загрузите его в представление на основе раскадровки.!
Обновление для Xcode 7 beta 6 (см. примечания к выпуску): сильный>
Interface Builder поддерживает новый API NSCollectionView в версии 10.11 с использованием источника данных и макетов, как в iOS. (18997303)
Кто-нибудь пробовал с ним работать раньше? Должен ли я просто добавить пустое представление коллекции в свою раскадровку, затем создать файл пера только для элемента представления коллекции и, наконец, связать его с помощью кода?
Обновление для Xcode 7.1 бета 3
Я скачал и протестировал новую бета-версию сегодня, и проблема все еще существует. Однако они странным образом удалили примечания по обходному пути из примечаний к выпуску как если бы починили...
На самом деле нет необходимости создавать дополнительный файл XIB, если вы уже используете раскадровки.
Удалите связь между NSCollectionView
и NSCollectionViewItem
Дайте элементу представления идентификатор
Программно установите прототип элемента в вашем окружении NSViewController
:
@IBOutlet weak var collectionView: NSCollectionView!
override func viewDidLoad() {
self.collectionView.itemPrototype = self.storyboard?.instantiateControllerWithIdentifier("collectionViewItem")
as NSCollectionViewItem
}
Это сохраняет все представления пользовательского интерфейса в одном месте и, таким образом, обеспечивает более удобный обходной путь, чем наличие чужого XIB-файла.
Если вы используете OSX 10.11 SDK, следующая информация из В примечаниях к выпуску Apple для этого указано, что свойство itemPrototype
вообще больше не заполняется (это, конечно, предполагает, что ваша минимальная цель развертывания — 10.11):
Чтобы использовать новую модель API NSCollectionView, вы указываете макет, устанавливая свойство «collectionViewLayout» NSCollectionView и либо предоставляете «dataSource», либо привязываете «содержимое» вашего CollectionView к NSArray или NSArrayController (см. «Привязка содержимого к NSCollectionView» ниже). ). Вы также должны отключить и отбросить «itemPrototype» NSCollectionView, который является пережитком модели API 10.10 и более ранних версий.