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

时间:2012-09-04 15:59:13

标签: macos cocoa nsnotificationcenter nsdocument

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

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

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

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

2 个答案:

答案 0 :(得分:2)

如果您将主文档用作notificationSenderaddObserver:selector:name:object:的{​​{1}}参数,我认为您的方法有效。

答案 1 :(得分:0)

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

NSDocument

并这样称呼它:

class Document: NSDocument {

    let notificationCenter = NotificationCenter()

    // Other stuff
}