LoginSignup
3
4

More than 5 years have passed since last update.

Document Base Applicationで気をつけること

Posted at

Document Base Applicationを作っていると、まずApplication(NSApplicationのサブクラス)、myDocument(NSDocumentのサブクラス)とWindowControllerのサブクラスをどう協調させていけばいいかに悩みます。

そこで、まずはどういう順番で、どのクラスのどのメソッドが呼ばれるか調べてみました。
結果は以下の通りでした。

  1. Application - init
  2. Application - awakeFromNib
  3. MyDocument - init
  4. MyDocument - makeWindowControllers
  5. WindowController - init
  6. WindowController - awakeFromNib
  7. MyDocument - awakeFromNib
  8. Application - applicationDidFinishLaunching

あとは initawakeFromNibの関係ですが、

  • initは、IBOutletではないインスタンスの初期化メソッド
  • awakeFromNibは、IBOutletとインターフェースビルダーでバインドしたオブジェクトがセットされた後呼び出され、outletの設定・初期化を行うためのメソッド

と、考えておけば良さそうです。
そう考えると、MyDocumnent.xibのFile's OwnerであるMyDocmentクラスが、xibの内部にある各オブジェクトの初期化が終わって、アウトレットとのバインドが終わるまでawakeFromNibが呼ばれない事に辻褄が合います。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4