gpt4 book ai didi

macos - NSWindowDidBecomeMainNotification 为所有窗口触发

转载 作者:行者123 更新时间:2023-12-03 16:27:17 25 4
gpt4 key购买 nike

我有一个带有两个窗口的应用程序 - 一个主窗口和一个可以从菜单栏打开的首选项窗口。我正在尝试实现一个通知,即首选项窗口成为主窗口,以便我可以在打开它时更新它,但是只要任何窗口打开,即使是不同的窗口,我的通知就会触发。

在我的 PrefsWindowViewController.m awakeFromNib 中我有:

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didBecomeMain:)
name:NSWindowDidBecomeMainNotification
object:nil];

在我的 PrefsWindowViewController.m dealloc 中,我有:

[[NSNotificationCenter defaultCenter] removeObserver:self name: NSWindowDidBecomeMainNotification object:nil];

任何人都可以解释为什么当我的 PrefsWindow 之外的其他窗口成为主窗口时可能会调用此函数吗?

最佳答案

这是因为您为 object: 参数传递了 nil 。请改为传递您的首选项窗口,或在回调中检查 [notification object] == yourPrefsWindow

关于macos - NSWindowDidBecomeMainNotification 为所有窗口触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7708535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com