我创建了一个简单的应用程序来学习如何使用 NSWorkspaceWillSleepNotification 和 NSWorkspaceDidWakeNotification。我的目标是在计算机睡眠和唤醒时调用一个方法。我创建的应用程序将相应地更改每个标签。构建应用程序后,我从桌面启动它。应用程序启动后,我让计算机进入睡眠状态。当计算机唤醒应用程序中的标签时,不要更改。我在窗口中添加了 IBAction 按钮以确保标签会更改。当按下按钮时,标签确实会改变。但我希望这样的事情在睡眠和醒来时自动发生。我究竟做错了什么?
#import "Controller.h"
@implementation Controller
- (void)fileNotifications {
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver: self
selector: @selector(makeSleep:)
name: NSWorkspaceWillSleepNotification
object: nil];
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver: self
selector: @selector(makeWake:)
name: NSWorkspaceDidWakeNotification
object: nil];
}
- (IBAction)makeSleep:(id)sender {
[sleepLabel setStringValue:@"Computer Slept!"];
}
- (IBAction)makeWake:(id)sender {
[wakeLabel setStringValue:@"Computer Woke!"];
}
@end