0

在课堂上,我执行以下操作:

- (void)windowDidLoad
{
    [super windowDidLoad];

    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(windowWillClose:) 
                                                 name:NSWindowWillCloseNotification 
                                               object:self.window];
}

- (void)windowWillClose:(NSNotification *)notification {
    NSLog(@"closing");
}

然后我将这个类子类化。只有一个问题。当我对这个类进行子类化时,永远不会发送通知。是否有一个原因?

4

3 回答 3

2

您的子类是否覆盖windowDidLoad和/或windowWillClose:?如果是这样,您的子类的实现是否调用super

于 2012-05-05T23:39:08.747 回答
1

你可能会错过一些东西,请检查

  1. 您是否已经在子类上覆盖了这些方法?

    - (void)windowDidLoad

    - (void)windowWillClose:(NSNotification *)notification

  2. 如果你在 1. 你写过这样的代码吗?

    [super windowDidLoad];或者[super windowWillClose:param];

于 2012-05-06T00:34:05.250 回答
0

1)在 windowDidLoad 或 awakeFromNib 处添加以下行

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(windowWillClose:) name:NSWindowWillCloseNotification object:self.window];

2)选择窗口并导航到检查的属性并选中“关闭时释放”复选框。

于 2017-03-24T10:59:41.887 回答