概要
iOSアプリ開発のノリでmacOSアプリを開発しようとしたら、NSCollectionViewで躓いたのでメモ。
UICollectionViewを使うときに加えて一手間必要でした。
途中までiOSの場合と変わらないので読み飛ばして大丈夫です。
実装
まずは適当なプロジェクトを新規で作ってみます。
以下は作成したプロジェクトの初期状態です。
CollectionViewの配置とDelegate等の設定
NSCollectionViewを配置します。
NSCollectionViewのOutlet接続をします。
iOSの場合と違って、CollectionViewの要素はCellではなく、Itemとなっています。
要素を設定する際にも、dequeueReusableCell(withReuseIdentifier:, for:)メソッドではなく、makeItem(withIdentifier:, for:)メソッドを使います。
また、DataSourceのメソッドも名前が結構違ってるので、実装すべきものはリファレンスで確認するといいと思います。下みたいな感じで確認できます。
Item(NSCollectionViewの要素)の作成
Cocoaフレームワークのクラスを作成します。
NSCollectionViewItemを継承したクラスを作成します。このとき、XIBを同時に作っておきます。
今回はLabelのみのItemを作りました。
Itemを作成したので、ViewControllerで使えるように編集します。
ここから一手間
iOSアプリの場合は以上の工程で終わりでしたが、macOSの場合はエラーを吐きます。
そこで、最後に一手間加えてやります。ItemのXIBで操作をします。
これでCollectionViewが使えるようになります。最後の一手間に気づかず、手間取ってしまいました...
実行
このまま実行するとこんな感じになります。
最後にCollectionViewのレイアウトでItemのサイズを変更します。これはiOSの場合と同じです。ItemのViewの大きさに応じて値を変えてください。
最終結果はこんな感じです。
まとめ
macOSアプリ開発について書いてある記事って以外と少ないので、こういった簡単なことでも躓いてしまうと大変です(実際自分がそうでした)。大したことは書いてないですが、同じことで悩んでいる人の解決に役立てば幸いです。∩(´∀`)∩ワァイ♪