1

現在、SwiftでOS Xアプリケーションを開発中です。私はメインビューでNSCollectionViewを使用しようとしていますので、NSCollectionViewオブジェクトを.xibファイルに追加しました。私は、データソースをリンクしてファイルの所有者に委任する以外のことは何も変更していません。NSCollectionViewを使用するとアサーションエラーが発生する

これは私がNSCollectionViewDataSourceプロトコルを実装するために書かれているコードです:私は自分のコードを実行したときに

/// MARK: - NSCollectionViewDataSource 
extension MainViewController: NSCollectionViewDataSource { 
    func collectionView(collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int { 
    return 10 
    } 

    func collectionView(collectionView: NSCollectionView, itemForRepresentedObjectAtIndexPath indexPath: NSIndexPath) -> NSCollectionViewItem { 
    let itemView = collectionView.makeItemWithIdentifier("fileItem", forIndexPath: indexPath) 
    itemView.textField!.stringValue = "TEST" 

    return itemView 
    } 

} 

は今、私がキャッチされない例外を取得し、アプリケーションのクラッシュ、そして私がなぜわからないのですが。ここに便利だと思うスタックトレースの一部です:

2016-04-02 18:58:02.768 Pilot[5442:679789] *** Assertion failure in -[NSCollectionView setItemPrototype:], /Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1404.46/Binding.subproj/NSCollectionView.m:1286 
2016-04-02 18:58:02.971 Pilot[5442:679789] An uncaught exception was raised 
2016-04-02 18:58:02.971 Pilot[5442:679789] Use -registerNib:forItemWithIdentifier: and -registerClass:forItemWithIdentifier: with new CollectionViews 

ご協力いただければ幸いです。

+1

"fileItem"をregisterNibまたはregisterClassに登録しましたか?それ以外の場合は.xibファイルに作成/配線しますか? – PRB

+0

@PRB "fileItem"はどこにも登録しませんでした。これは問題かもしれません。私はそのパラメータが何を意味し、どのようにそれを登録すべきか正確にはわかりません。 – Rohan

+1

ストーリーボードを使用してレイアウトを設計した場合は、コレクションビュー内にコレクションビューセルが存在する必要があります。 Attributes Inspector(右側のStoryboardのUtilitiesビュー)に移動して、セルに識別子「fileItem」(Collection Reusable Viewの下)を指定します – PRB

答えて

0

あなたはこのようにカスタムビューを登録する必要があります。

collectionView.register(MyFileCollectionViewItem.self, forItemWithIdentifier: "fileItem") 

コレクションビューに任意の項目をロードする前に(私はそれが作成、またはそのコントローラのviewDidLoad()でのと同じブロックにはお勧めします)。

関連する問題