ヒレガス本 第9章 通知の使用

  • NSNotificationCenterクラスで通知が管理される。defaultCenterメソッドでNSNotificationCenterオブジェクトが得られる。
  • addObserver:selector:name:objectメソッドでオブザーバを登録できる。このとき、どのイベントでどのイベントハンドラを呼びたいかを指定する。removeObserverメソッドでオブザーバを解除できる。
  • postNotification か postNotification:object で通知をポスト(送信)できる。

演習問題は、これまでの章ですでにデリゲートが設定されているため、単に AppController.m にイベントハンドラを追加するだけでよい。ただ、出題文章で「アプリケーションがアクティブになった際」「NSApplicationDidResignActiveNotificationをポストする」となっているが、「アプリケーションがアクティブでなくなった際」または「NSApplicationDidBecomeActiveNotificationをポストする」の誤りと思われる。前者の場合は

- (void)applicationDidResignActive:(NSNotification *)aNotification
{
	NSBeep();
}

後者であれば、

- (void)applicationDidBecomeActive:(NSNotification *)aNotification
{
	NSBeep();
}

とすればよい。