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