我正在使用NSNotificationCenter
在基于文档的应用程序中发送自定义通知。
基于文档的应用可以包含许多打开的文档。理想情况下,我希望文档及其子级仅接收在文档或其子级中创建的通知。换句话说,文档应该只接收同一文档生成的通知。
起初我以为可以使用notificationSender
的addObserver:selector:name:object:
参数,但后来我意识到我并不总是知道哪个对象将发送通知。
是否必须针对每个自定义通知检查我是否在正确的文档中?有更好的方法吗?
[我认为,如果您同时将主文档用作addObserver:selector:name:object:
和notificationSender
的addObserver:selector:name:object:
参数,则您的方法有效。
您可以在postNotificationName:object:
类中定义一个NotificationCenter
,并使用它在文档中发布通知(Swift):
NSDocument
并这样称呼:
class Document: NSDocument {
let notificationCenter = NotificationCenter()
// Other stuff
}