在课堂上我会做以下事情:
- (void)windowDidLoad
{
[super windowDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(windowWillClose:)
name:NSWindowWillCloseNotification
object:self.window];
}
- (void)windowWillClose:(NSNotification *)notification {
NSLog(@"closing");
}
然后我将这个类子类化。只有一个问题。当我继承此类时,通知永远不会发送。有这个原因吗?
答案 0 :(得分:2)
您的子类是否覆盖windowDidLoad
和/或windowWillClose:
?如果是这样,你的子类的实现是否会调用super
?
答案 1 :(得分:1)
您可能会遗漏某些内容,请检查
您是否已在子类上覆盖这些方法?
- (void)windowDidLoad
- (void)windowWillClose:(NSNotification *)notification
如果您在1.中编写了这样的代码吗?
[super windowDidLoad];
或[super windowWillClose:param];
答案 2 :(得分:0)
1)在windowDidLoad或awakeFromNib
添加以下行[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(windowWillClose:) name:NSWindowWillCloseNotification object:self.window];
2)选择窗口并导航到检查的属性,然后选中“关闭时释放”复选框。