没有收到通知中心观察员 Swift
Posted
技术标签:
【中文标题】没有收到通知中心观察员 Swift【英文标题】:Didn't receive Notification Center Observer Swift 【发布时间】:2020-06-16 16:23:55 【问题描述】:在这里我创建了一个 customView: UIView 并实现了 UITextField didBegin 和 didEnd notificationObservers
当设置对象为零时。 我被触发了 notificationObserved(_:)
但是当我传递一个 (object: self) 我没有收到 notificationObserved。
class CustomView: UIView
func setupView()
[UITextField.textDidBeginEditingNotification,
UITextField.textDidEndEditingNotification].forEach(
NotificationCenter.default.addObserver(self, selector: #selector(notificationObserved(_:)), name: $0, object: self)
)
@objc func notificationObserved(_ notified: Notification)
switch notified.name
case UITextField.textDidBeginEditingNotification:
// Do here
case UITextField.textDidEndEditingNotification:
// Do here
default:
break
【问题讨论】:
【参考方案1】:这实际上是预期的行为。 addObserver(_,selector:,name:,object:)
方法中的参数object
是,如developer documentation (here) 中所述,“向观察者发送通知的对象”。
由于发送通知的对象是UITextField
,而不是您的类的实例CustomView
,因此当您在object
参数中传递self
时,您将永远不会收到通知。
传递nil
表示无论发件人,你总是希望收到通知。
【讨论】:
以上是关于没有收到通知中心观察员 Swift的主要内容,如果未能解决你的问题,请参考以下文章
收到来自 Firebase 的推送通知 ios 但没有声音或在通知中心