基于文档的应用程序中的NSNotificationCenter

问题描述 投票:2回答:2

我正在使用NSNotificationCenter在基于文档的应用程序中发送自定义通知。

基于文档的应用可以包含许多打开的文档。理想情况下,我希望文档及其子级仅接收在文档或其子级中创建的通知。换句话说,文档应该只接收同一文档生成的通知。

起初我以为可以使用notificationSenderaddObserver:selector:name:object:参数,但后来我意识到我并不总是知道哪个对象将发送通知。

是否必须针对每个自定义通知检查我是否在正确的文档中?有更好的方法吗?

macos cocoa nsnotificationcenter nsdocument
2个回答
2
投票

[我认为,如果您同时将主文档用作addObserver:selector:name:object:notificationSenderaddObserver:selector:name:object:参数,则您的方法有效。


0
投票

您可以在postNotificationName:object:类中定义一个NotificationCenter,并使用它在文档中发布通知(Swift):

NSDocument

并这样称呼:

class Document: NSDocument {

    let notificationCenter = NotificationCenter()

    // Other stuff
}
© www.soinside.com 2019 - 2024. All rights reserved.