Questions tagged «nsnotificationcenter»

NSNotificationCenter允许在Apple提供的Foundation框架中发送和注册通知。


14
Swift中的NSNotificationCenter addObserver
如何在Swift中将观察者添加到默认通知中心?我正在尝试移植此行代码,以便在电池电量变化时发送通知。 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryLevelChanged:) name:UIDeviceBatteryLevelDidChangeNotification object:nil];

30
使用Swift使用键盘移动视图
我有一个应用程序,该应用程序在视图的下半部分具有文本字段。这意味着当我输入文本字段时,键盘将覆盖文本字段。 如何在键入时向上移动视图,以便可以看到正在键入的内容,然后在键盘消失时将其向下移动到原始位置? 我到处都看过,但是所有解决方案似乎都在Obj-C中,我还不能完全转换。 任何帮助将不胜感激。

5
如何使用NSNotificationCenter传递对象
我试图将对象从我的应用程序委托传递到另一个类的通知接收器。 我想传递整数messageTotal。现在我有: 在接收器中: - (void) receiveTestNotification:(NSNotification *) notification { if ([[notification name] isEqualToString:@"TestNotification"]) NSLog (@"Successfully received the test notification!"); } - (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismissSheet) name:UIApplicationWillResignActiveNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveTestNotification:) name:@"eRXReceived" object:nil]; 在执行通知的类中: [UIApplication sharedApplication].applicationIconBadgeNumber = messageTotal; [[NSNotificationCenter defaultCenter] postNotificationName:@"eRXReceived" object:self]; 但是我想将对象传递messageTotal给另一个类。

5
如何在Swift 3.0中使用NotificationCenter和在Swift 2.0中使用NSNotificationCenter传递数据?
我正在socket.io快速的ios应用程序中实现。 目前,在几个面板上,我正在侦听服务器并等待传入​​消息。我这样做是通过getChatMessage在每个面板中调用该函数: func getChatMessage(){ SocketIOManager.sharedInstance.getChatMessage { (messageInfo) -> Void in dispatch_async(dispatch_get_main_queue(), { () -> Void in //do sth depending on which panel user is }) } } 但是我注意到这是一个错误的方法,我需要更改它-现在我只想开始监听一次传入的消息,并且当出现任何消​​息时-将此消息传递给任何侦听它的面板。 所以我想通过NSNotificationCenter传递传入的消息。到目前为止,我能够传递发生了某些事情的信息,但无法传递数据本身。我这样做的原因是: NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.showSpinningWheel(_:)), name: showSpinner, object: nil) 然后我有一个函数叫做: func showSpinningWheel(notification: NSNotification) { } 每当我想称呼它时,我都在做: NSNotificationCenter.defaultCenter().postNotificationName(hideSpinner, object: self) 那么如何传递对象messageInfo并将其包含在调用的函数中呢?


7
相当于NSNotificationCenter的Android
在将iPhone应用程序移植到android的过程中,我正在寻找在应用程序内进行通信的最佳方法。意图似乎是解决之道,这是最好的(唯一的)选择吗?在性能和编码方面,NSUserDefaults的权重似乎比Intent轻得多。 我还应该添加我有一个状态的应用程序子类,但我需要使另一个活动知道一个事件。

7
iOS 11-键盘高度在键盘通知中返回0
我一直在使用键盘通知,没有任何问题,并获得确切的键盘高度。 - (void)keyboardDidShow:(NSNotification *) notification{ CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; NSLog(@"%f",keyboardSize.height);} 但在iOS 11中,调用通知时键盘的大小为0。 在这种情况下会发生什么问题?我正在使用xcode 9 Beta 5

2
如何使用NSNotificationcenter的对象属性
有人可以告诉我如何在NSNotifcationCenter上使用对象属性。我希望能够使用它将整数值传递给我的选择器方法。 这就是我在UI视图中设置通知侦听器的方式。好像我要传递一个整数值,我不确定用nil替换什么。 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveEvent:) name:@"myevent" object:nil]; - (void)receiveEvent:(NSNotification *)notification { // handle event NSLog(@"got event %@", notification); } 我从另一个这样的类调度通知。该函数传递了一个名为index的变量。我想以某种方式触发此通知。 -(void) disptachFunction:(int) index { int pass= (int)index; [[NSNotificationCenter defaultCenter] postNotificationName:@"myevent" object:pass]; //[[NSNotificationCenter defaultCenter] postNotificationName:<#(NSString *)aName#> object:<#(id)anObject#> }

4
在主线程上发布NSNotification
我发现了以下代码片段,该片段允许NSNotification从任何后台线程发布到主线程上。我想知道这是否是一种安全且可以接受的做法? dispatch_async(dispatch_get_main_queue(),^{ [[NSNotificationCenter defaultCenter] postNotificationName:@"ImageRetrieved" object:nil userInfo:imageDict]; });

3
NSNotificationCenter的帖子导致“ EXC_BAD_ACCESS”异常
AUIViewController将自身添加到默认中心: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(editFood) name:@"editFood" object:nil]; 然后,UITableView委托NSObject发布NSNotification: [[NSNotificationCenter defaultCenter] postNotificationName:@"editFood" object:self]; 在运行时,它将获得EXC_BAD_ACCESS异常。 在defaultCenter得到释放的地方?当我从UIViewController向UIViewController发布通知时,相同的概念起作用,但这没关系,对吧?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.