- 浏览: 569982 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
JYY282:
[i][/i]
Ecshop与Shopex的比较 -
qq247890212:
我也遇见这问题了,真诡异。重新下载个猫换了就好了。 太浪费时间 ...
诡异:ClassNotFoundException: org.springframework.web.filter.CharacterEncoding
From: http://blog.163.com/fuxiaohui@126/blog/static/131745826201196104455203/
什么是Notification
这个要求其实也很容易实现. 每个运行中的application都有一个NSNotificationCenter的成员变量,它的功能就类似公共栏. 对象注册关注某个确定的notification(如果有人捡到一只小狗,就去告诉我). 我们把这些注册对象叫做observer. 其它的一些对象会给center发送notifications(我捡到了一只小狗). center将该notifications转发给所有注册对该notification感兴趣的对象. 我们把这些发送notification的对象叫做 poster
很多的标准Cocoa类会发送notifications: 在改变size的时候,Window会发送notification; 选择table view中的一行时,table view会发送notification;我们可以在在线帮助文档中查看到标准cocoa对象发送的notification
在对象释放前,我们必须从notification center移除我们注册的observer. 一般我们在dealloc方法中做这件事
NSNotification类
提供给observer的信息包裹. notification对象有两个重要的成员变量: name 和 object.
- (NSString *)name;
- (id)object;
- (NSDictionary *)userInfo;我们想要notification对象传递更多的信息
+ (id)notificationWithName:(NSString *)aName object:(id)anObject;
+ (id)notificationWithName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
NSNotificationCenter类
+ (id)defaultCenter;返回notification center [类方法,返回全局对象, 单件模式.cocoa的很多的全局对象都是通过类似方法实现]
- (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;
如果notificationName为nil. 那么notification center将anObject发送的所有notification转发给observer
. 如果anObject为nil.那么notification center将所有名字为notificationName的notification转发给observer
- (void)postNotification:(NSNotification *)notification;
- (void)postNotificationName:(NSString *)aName object:(id)anObject;
- (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;
- (void)removeObserver:(id)observer;
- (void)removeObserver:(id)observer name:(NSString *)aName object:(id)anObject;
NSNotificationCenter 的使用方法举例(虚拟键盘的显示隐藏)
1. 定义一个方法
update
2.订阅通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(update) name:@"update" object:nil]
3. 在要发出通知消息的地方
[[NSNotificationCenter defaultCenter] postNotificationName:@"update" object:nil];
----------------------------
虚拟键盘显示和消失的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasHidden:) name:UIKeyboardDidHideNotification
object:nil];
- (void)keyboardWasShown:(NSNotification *) aNotification{
if(keyboardShown)return;
NSDictionary *info = [aNotification userInfo];//获取通知信息
//get the size of the keyboard.
NSValue *aValue = [info objectForKey:UIKeyboardFrameBeginUserInfoKey];
CGSize keyboardSize = [aValue CGRectValue].size;
//Resize the scroll view
CGRect viewFrame = [scrollView frame];
viewFrame.size.height -= keyboardSize.height;
//Scroll the active text field into view
CGRect textFieldRect = [activeField frame];
[scrollView scrollRectToVisible:textFieldRect animated:YES];
keyboardShown = YES;
}
//Called when the UIKeyboardDidHideNotification is sent
- (void)keyboardWasHidden:(NSNotification *) aNotification{
NSDictionary *info = [aNotification userInfo];
//Get the size of the keyboard.
NSValue *aValue = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
CGSize keyboardSize = [aValue CGRectValue].size;
//Reset the height of the scroll view to its original value
CGRect viewFrame = [scrollView Frame];
viewFrame.size.height += keyboardSize.height;
scrollView.frame = viewFrame;
keyboardShown = NO;
}
发表评论
-
Objective-C 与 C++ 的异同
2013-04-02 12:03 1358http://www.cnblogs.com/y041039 ... -
Cocos2D-X是全球知名的开源跨平台手机游戏引擎
2013-01-22 10:05 2710http://www.oschina.net/p/cocos ... -
iOS Keyboard 键盘高度变化 自适应
2013-01-15 15:43 3219[[NSNotificationCenter default ... -
iOS使用自定义字体
2012-11-27 12:11 12077From: http://blog.csdn.net/csy1 ... -
4 款类似 Facebook/Path 切换效果的 iOS 组件
2012-11-27 12:03 2091From: http://blog.csdn.net/lia ... -
Path 2.0的UI界面设计详细介绍
2012-11-27 11:56 1427如Path的创始人Dave Morin ... -
史上最全的App Store邮箱列表
2012-11-27 11:51 1223From: http://roybaby.blog.51cto ... -
iOS从info.plist 获取项目的名称及版本号
2012-11-16 10:54 1576From: http://blog.sina.com.cn/s ... -
MapKit annotation drag and drop with callout info update
2012-10-13 10:38 2364http://hollowout.blogspot ... -
NSArray 或NSDictionary 调用writeToFile方法失败原因
2012-08-31 10:03 4423NSArray 或NSDictionary 调用writeTo ... -
如何让IOS应用从容地崩溃
2012-08-30 15:25 1572From: http://www.cocoachina.com ... -
iOS中判断设备系统版本
2012-08-29 17:17 31669在iOS开发中,经常要考虑系统的向下兼容,如果使用 ... -
iOS 汉字转拼音
2012-08-21 16:42 1425From: http://www.cnblogs.com/v2 ... -
iOS模拟器截图工具
2012-08-17 16:35 1585From: http://magicalboy.com/ios ... -
XCode下的iOS单元测试
2012-08-10 17:47 1121From: http://mobile.51cto.com/ ... -
AFNetworking
2012-08-08 10:54 4622AFNetworking on github: https:/ ... -
Wrapping Conventions
2012-08-01 15:54 781Wrapping Conventions ... -
Core Animation如何使显式动画结束时的值直接作用Layer
2012-08-01 14:51 3750(1)使用隐式动画会直接改变layer的属性值,如: ima ... -
How To Debug Memory Leaks with XCode and Instruments Tutoria
2012-07-31 16:30 1019From: http://www.raywenderlich. ... -
Using Properties in Objective-C Tutorial
2012-07-31 16:27 881From: http://www.raywenderlich. ...
相关推荐
主要介绍了ios NSNotificationCenter通知的简单使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
NULL 博文链接:https://o0o0o0o.iteye.com/blog/645602
IOS中经常会使用到NSNotification和delegate来进行一些类之间的消息传递,这篇文章主要介绍了iOS NSNotificationCenter使用小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
SFObservers, NSNotificationCenter和KVO自动删除观察者 在任何项目中,我不再使用 SFObservers,但仍然会接受请求的请求。命令行目SFObservers是在NSNotificationCenter和KVO中为观察者 Pattern 添加自动删除的类别...
详细说明了NSNotificationCenter的使用,包括各个参数的使用
iOS 通知 转发
iOS开发基础-NSNotificationCenter(通知中心)通知发布者和监听者示例,代码DEMO附带详细注释。有错误的地方欢迎提出。
OC-NSNotificationCenter.异步线程下载图片zip
iOS基础——通知代理之NSNotificationCenter、Delegate
IZEvent IZEvent是NSNotificationCenter的纯Swift替代方案。 它努力做到简单,安全和简单。 Pro的NSNotificationCenter上: 内存安全:不会发生内存泄漏,也不需要在deinit中删除观察者线程安全:默认情况下将事件...
一个简单的NSNotificationCenter的使用例子Demo,适合初学者。另外一个简单的UI效果是在tab bar的tab上面加上数字badge。 小编注:感谢开发者@Promise松 分享代码于本站。 Code4App编译测试,适用环境:Xcode ...
FXNotifications, 一个NSNotificationCenter的替代 API 命令行目FXNotifications是 NSNotificationCenter的一种类别,提供了基于基于的API,更简单易用,并避免了官方API的不同内存漏洞。有关更多详细信息,请参见...
iOS基础——通知代理之NSNotificationCenter、Delegate
NULL 博文链接:https://andydufresneone.iteye.com/blog/1028462
ios demo,NSNotificationCenter,app进入后台时的调用和就、进入前台时的调用。
A 页有N+1UIView,B页执行一个操作,A的N+1Uiview要修改,可以通过Delelgate实现,蛋有的时候无法实现时,选用消息模式
RxEventHub概述RxEventHub是RxSwift世界中的事件中心,它使多播事件变得容易,类型安全且无错误,在大多数情况下,它旨在取代NSNotificationCenter的使用。 使RxEventHub成为多播的概述RxEventHub是RxSwift世界中的...
GLPubSub 是NSNotificationCenter的包装器,使发布订阅更容易。 这是对一类NSObject ,所以它可以在任何的子类被称为NSObject 。 安装 可可豆 使用 CocoaPods,您可以简单地: 在Podfile添加以下依赖Podfile : ...