ObjecTips

Swift & Objective-C で iOS とか macOS とか

NSViewController の viewWillAppear メソッド

OS X v10.10 の NSViewControlleriOSUIViewController と同じような以下のメソッドが追加された。

- (void)viewWillAppear NS_AVAILABLE_MAC(10_10);
- (void)viewDidAppear NS_AVAILABLE_MAC(10_10);
- (void)viewWillDisappear NS_AVAILABLE_MAC(10_10);
- (void)viewDidDisappear NS_AVAILABLE_MAC(10_10);

iOS の場合は

- (void)viewWillAppear:(BOOL)animated;

となっているけど、OS X ではアニメーションの有無に関する引数が存在しない。
これらのメソッドは以下のケースで呼ばれる。

  • View を表示している Window が画面上に表示された時/閉じられた時
  • アプリの Hide/Unhide によって Window が表示/非表示された時
  • View を表示している Window が Minimize でドックに収納された時/ドックから出てきた時
  • NSTabViewController の切り替えによって ViewController の View が表示/非表示される時

例えば、ドックに入れた状態でアプリを Hide/Unhide してもこれらのメソッドは呼ばれない。