文档型应用中的NSNotificationCenter

3
我在使用NSNotificationCenter来发送自定义通知,在文档型应用程序中。文档型应用程序可以有许多打开的文档。理想情况下,我希望文档及其子级只接收文档或其子级创建的通知。换句话说,文档应该只接收同一文档生成的通知。
起初,我认为可以使用addObserver:selector:name:object:notificationSender参数,但后来我意识到并不总是知道哪个对象会发送通知。
我是否需要检查每个自定义通知是否在正确的文档中?有更好的方法吗?
2个回答

3

如果您将主文档用作addObserver: selector: name: object:postNotificationName: object:notificationSender参数,则我认为您的方法可行。


那是我最初尝试的。但如果我这样做,我就无法发送真正的发件人(与生成通知的文档相关的某个对象)。 - hpique
@hpique:也许你可以使用userInfo参数来传递真实的发送者? - Martin R

2
您可以在您的NSDocument类中定义一个NotificationCenter,并使用它来在文档内发布通知(Swift):
class Document: NSDocument {

    let notificationCenter = NotificationCenter()

    // Other stuff
}

然后这样调用它:

document.notificationCenter.post(name: yourNotificationIdentifier, object: nil)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接