以监听键盘弹出/隐藏代码来说明:
- (void)viewDidLoad {
// 获取通知对象
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
/*
注册监听,
1>Observer参数:是哪个对象要监听
2>selector参数:监听的对象收到通知后执行哪个方法
3>name参数:监听通知的名称,明确监听哪个类型名称的通知,可以自定义通知名称。(如果不写,则会监听发出通知对象的所有通知)
4>object参数:明确发出通知的对象.(如果不写,则会根据通知名称来监听)
5>如果不写4.5参数,则会监听所有通知
*/
[center addObserver:self selector:@selector(keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil];
/*
发送通知
1>Name参数:发送的通知名称
2>object参数:发出通知的主体
3>userinfo参数:发出通知的内容信息,为NSDictionary类型
*/
[center postNotificationName:UIKeyboardDidChangeFrameNotification object:self userInfo:@{}];
}
// 收到通知后执行的方法
-(void)keyboardWillChange:(NSNotification *)notification{
// 获取键盘改变通知中的userinfo CGRect
CGRect rectEnd = [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
// 从

本文介绍了iOS中NSNotification的使用,通过监听键盘弹出/隐藏的示例,展示了如何进行设备状态的监听。同时,文章对比了NSNotification与代理在对象通信上的异同,指出代理是一对一关系,而通知则可以实现一对多的通信方式。

1412

被折叠的 条评论
为什么被折叠?



