iOS边练边学--通知机制和键盘处理
一、通知中心(NSNotificationCenter)
- 每一个程序都有一个通知中心实例,专门负责协助不同对象之间的消息通信
- 任何一个对象都可以想通知中心发布通知(NSNotification),描述自己在做什么。其他感兴趣的对象(Observer)可以申请在某个特定的通知发布时(或在某个特定的对象发布通知时)收到这个通知
二、通知(NSNotification)
- 一个完整的通知一般包含3个属性:
- - (NSString *)name; // 通知的名称
- - (id)object; // 通知发布者(是谁要发布通知)
- - (NSDictionary *)userInfo; // 一些额外的信息(通知发布者传递给通知接受者的信息内容)
- 初始化一个通知(NSNotification)对象
-
+ (instancetype)notificationWithName:(NSString *)aName object:(id)anObject;
-
+ (instancetype)notificationWithName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
-
- (instancetype)initWithName:(NSString *)name object:(id)object userInfo:(NSDictionary *)userInfo;
三、发布通知:通知中心NSNotificationCenter提供了相应的方法来帮助发布通知
-
- (void)postNotification:(NSNotification *)notification;发布一个notification通知,可在notification对象中设置通知的名称、通知发布者、额外信息等
-
- (void)postNotificationName:(NSString *)aName object:(id)anObject;发布一个名称为aName的通知,anObject为这个通知的发布者
- - (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
发布一个名称为aName的通知,anObject为这个通知的发布者,aUserInfo为额外信息
四、注册通知监听器
五、取消注册通知监听器
六、UIDevice通知
七、键盘通知
八、通知和代理的选择