gpt4 book ai didi

cocoa - Obj-C Cocoa 通知 NSApplicationDidResignActiveNotification

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

我有一个名为 AppController.h/m 的类,我想在发送 NSNotificationDidResignActiveNotification 时做一些事情。所以我在AppController.m中编写了这段代码:

-(void) initialize(){
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidResignActive:)
name:NSApplicationDidResignActiveNotification
object:nil ];
}

然后

-(void) applicationDidResignActive (NSNotification*) note{
NSBeep();
}

问题是该方法没有执行,我在控制台中得到了这个:

+[AppController applicationDidResignActive:]: unrecognized selector sent to class 0x61c4

我不知道问题出在哪里:你能帮我吗?
谢谢!

最佳答案

initialize 是一个类方法,而不是实例方法。我不确定这一点,但似乎在类方法中使用选择器时,它还假设选择器将是一个类方法(有充分的理由)。 AppController 有一个名为 applicationDidResignActive 的实例方法,但没有这样命名的类方法。

不要在 +initialize 中注册通知,而是覆盖 -init 并在那里注册。

- (void)init
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidResignActive:)
name:NSApplicationDidResignActiveNotification
object:nil ];
}

关于cocoa - Obj-C Cocoa 通知 NSApplicationDidResignActiveNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5173452/

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