0

クラスでは、次のようなことをします。

- (void)windowDidLoad
{
    [super windowDidLoad];

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

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

次に、このクラスをサブクラス化します。問題は1つだけです。このクラスをサブクラス化すると、通知は送信されません。これには理由がありますか?

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 に答える