By | 2017年12月12日

おりばーです。

iOSではなくOSXアプリケーションを作るときの日本語の資料がなく、大変苦労したので自分用メモ。



環境

  • Mac OSX 10.13
  • Swift 3.0

ソースコード

最小構成をGithubにあげています。

https://github.com/oliverblog/appkit_mvvm

プロジェクトの下準備

最小構成の作成

新規にCocoa Applicationを作成します。

今回は、StoryboardDocument-Based Applicationも使いません。そのままNextをクリックで新規プロジェクトを作成しました

ビルド時にアラートが出るのでDeployment Target10.12に変更します。また、Menuも使わないのでMainMenu.xibを削除します。

MVVM構成をつくる

今回は、

  • MainView.xibView
  • MainViewModel.swiftViewModel
  • MainModel.swiftModel

としてプロジェクトを初期化します。

MainViewとMainViewModelの関連付け

この箇所の資料を探すのに苦労したので将来の自分への情報共有も兼ねてちょっと細かく

View Controllerの追加

左のツリーからMainView.xlbを選択し、右下のコントロールの一覧がでている箇所で「controller」と検索

「View Controller」というコンポネントが見つかるはず

「View Controller」をドラッグしながら、左のPlaceholdersWindowがあるツリーまでドラッグアンドドロップする

MainViewModel.swiftの編集

このファイルは何度か編集されますが、関連付けにNSViewControllerの継承が必須なので下記のようにコードを編集

import Cocoa

class MainViewModel : NSViewController
{
    
}

ViewとViewModelの関連付け

いよいよViewViewModelを関連付けます。下図のように追加したView Controller(Main View Model)をクリックし、右パネルの上部のアイコンの並びの左から3番目(Custom Class)を選択。

Class: MainViewModelと入力

次に、Main View Modelを右クリックすると下図のような黒いダイアログが表示されるので、sourceItemViewの黒ポチをクリック。黒ポチから線が表示されるので、その線分の対角をWindowまでドラッグすると、MainViewModel.swiftとマッピングされる。

これでViewとViewModelの関連付けが完了

これでだいたいのことはできると思います。詳細はGithubのソースコードを見てください