MacOS のデスクトップアプリを Xcode で作成する際、UI として storyboard を選べば、自動で appdelegate は生成されるので、簡単なアプリならば、ここで初期化処理すればいい。
が、レガシーなプロジェクトでは xib が使われている場合も多い。
ちょっと調べますかね。
Xcode を起動し、UI を xib でプロジェクトを作成。
MainMenu.xib が自動で生成されるが、この Objects を管理しているのが AppDelegate という構成になっているようだ。
AppDelegate も自動生成されるが、このクラスは以下のように NSApplicationDelegate を継承している。
なるほど。
ただ、レガシーなプロジェクトではこの継承が明示されていないこともあるようだ。
AppController のような名前になっていて初見でなんのことかわからなかった。
もちろん、
– (void)applicationDidFinishLaunching:
– (void)applicationWillTerminate:
は、実装されていたが。
さらに言っておくと WindowController から AppController のイニシャライズをする、というなんとも風変わりな構成になっていた。
こういうのもあるんですね。