ヒレガス本 第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(); }
とすればよい。