Tag: nsnotifications

NSTextField的文本更改通知

我想从这个问题的答案中使用代码: 如何观察NSTextField上的NSTextField 的值,以便观察NSTextField中存储的string的更改。 [[NSNotificationCenter defaultCenter] addObserverForName:NSTextViewDidChangeSelectionNotification object:self.textView queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note){ NSLog(@"Text: %@", self.textView.textStorage.string); }]; 这里使用的类是一个NSTextView。 我在NSTextField中找不到NSTextViewDidChangeSelectionNotification的通知。 NSTextField中是否有可用的通知?

如何停止NSNotification中的观察器被调用两次?

我有一个两次调用NSNotification的观察者。 我不知道该怎么办 我GOOGLE了,但没有find解决办法。 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(connectedToServer:) name:@"ConnectedToServer" object:nil]; – (void)connectedToServer:(NSNotification*)notification { [[NSNotificationCenter defaultCenter] postNotificationName:@"SendMessageToServer" object:message]; }

你如何在Swift 3中创build自定义通知?

在Objective-C中,自定义通知只是一个普通的NSString,但在Swift 3的WWDC版本中它并不明显。

如何通过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传递给另一个类。

如何使用Swift 3.0中的NotificationCentre和Swift 2.0中的NSNotificationCenter传递数据?

我在我的swift ios应用程序中实现socket.io 。 目前在几个面板上我正在监听服务器,并等待传入​​的消息。 我通过调用每个面板中的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并将其包含在被调用的函数中呢?

NSNotificationCenter vs委托(使用协议)?

他们每个人的优点和缺点是什么? 我应该在哪里具体使用它们?