macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

NSNotificationクラス

Index>Foundation>

apple(mac)

解説

継承 NSObject
準拠 NSObject (NSObject)
フレームワーク /System/Library/Frameworks/Foundation.framework
使用可能 Mac OS X v10.0以降
iOS 2.0以降
定義

概要

NSNotificationオブジェクトは他のオブジェクトに情報を送信するために、名前・オブジェクト・オプションの辞書を含んでカプセル化されています。
ノーティフィケーションセンター(NSNotificationCenter)を通して他のオブジェクトに送信されます。

作成

通知を作るには2種類の方法があります。通知名とオブジェクトで作成する方法(+ notificationWithName:object:)、もう一つは通知名・オブジェクトとNSDictionaryで作った追加の情報とで作成する方法(+ notificationWithName:object:userInfo:)です。
通知はNSNotificationCenterのpostNotification:メソッドを使って放送(ブロードキャスト)されます。通知センターに登録してあれば、他のアプリケーションにも通知されます。

    NSString *aString = [NSString stringWithString:@"String"];
    NSDictionary *aDic = [NSDictionary dictionaryWithObject:@"Object" forKey:@"key"];
    NSNotification *notifi = [NSNotification notificationWithName:@"MyNotification" object:aString userInfo:aDic];
    [nCenter postNotification:notifi];

通知情報を取得

NSNotificationが持つ情報は3つあります。一つ目は通知名、(– name)メソッドで取得できます。二つ目はオブジェクト、(– object)メソッドで取得できます。最後はユーザー情報、(– userInfo)で取得できます。ユーザー情報はNSDictionaryオブジェクトで追加の情報を渡したい場合に使用します。

いろいろな通知名

UIWindowではキーボードが出現しようとする前に(UIKeyboardWillShowNotification)が通知されます。出現した後には(UIKeyboardDidShowNotification)が通知されます。
キーボードが消えようとする前には(UIKeyboardWillHideNotification)が、消えた後には(UIKeyboardDidHideNotification)が通知されます。

UIApplicationでは画面の向きの変更に対して様々な通知がブロードキャストされます。
ステータスバーの向きが変わる時には(UIApplicationWillChangeStatusBarOrientationNotification)がブロードキャストされます。UserInfoに新しい向きが返されます。

UIScreenクラスでは画面の明るさを変更した時に(UIScreenBrightnessDidChangeNotification)がブロードキャストされます。

適合するプロトコル

メソッド

Getting Notification Information

– name
– object
– userInfo

サブクラス化の注意