macos – 无法在swift OSX中接收NSWorkspaceDidWakeNotification

macos – 无法在swift OSX中接收NSWorkspaceDidWakeNotification,第1张

概述我正在制作一个mac应用程序,当计算机唤醒睡着并醒来时,有必要做一些事情,但我不能让听众工作.我觉得我已经尝试了一切.在AppDelegate. swift中,在函数applicationDidFinishLaunching中,我得到了: NSWorkspace.sharedWorkspace().notificationCenter.addObserver(self, selector: "sl 我正在制作一个mac应用程序,当计算机唤醒睡着并醒来时,有必要做一些事情,但我不能让听众工作.我觉得我已经尝试了一切.在AppDelegate. swift中,在函数applicationDIDFinishLaunching中,我得到了:

NSWorkspace.shareDWorkspace().notificationCenter.addobserver(self,selector: "sleepListener",name: NSWorkspaceWillSleepNotification,object: nil)NSWorkspace.shareDWorkspace().notificationCenter.addobserver(self,selector: "wakeUpListener",name: NSWorkspaceDIDWakeNotification,object: nil)

在AppDelegate.swift中,但在函数applicationDIDFinishLaunching之外,我有:

func sleepListener(aNotification : NSNotification) {    print("Sleep Listening");}func wakeUpListener(aNotification : NSNotification) {    print("Wake Up Listening");}

我尝试了很多不同的东西来解决这个问题.我试着在NSNotificationCenter.defaultCenter()上试听,我已经尝试将选择器更改为“sleepListener:”和“wakeUpListener:”,我尝试从两个函数中删除参数,到目前为止还没有任何工作.而真正有趣的是,我有两个其他听众完美地工作,“NSWorkspaceScreensDIDSleepNotification”和“NSWorkspaceScreensDIDWakeNotification”,通过调用它们

NSWorkspace.shareDWorkspace().notificationCenter.addobserver(self,selector: "screenSleepListener",name: NSWorkspaceScreensDIDSleepNotification,object: nil)

NSWorkspace.shareDWorkspace().notificationCenter.addobserver(self,selector: "screenWakeUpListener",name: NSWorkspaceScreensDIDWakeNotification,object: nil)

引用这些功能

func screenSleepListener() {    print("Screen Sleep Listening");}func screenWakeUpListener() {    print("Screen Wake Up Listening");}

那么,这是我做错了吗?我应该提交错误报告吗?如果其他人可以在文件中运行此代码,让他们的显示器和他们的计算机进入睡眠状态,看看他们是否得到相同的错误,这将非常有帮助.如果有人知道世界上我做错了什么,那就更好了.

先感谢您!

解决方法 我看到这篇文章来自很久以前.

从您的帖子中,我得到的印象是您以错误的顺序进行了两次排列.

NSWorkspace.shareDWorkspace().notificationCenter.addobserver(self,object: nil)    NSWorkspace.shareDWorkspace().notificationCenter.addobserver(self,object: nil)func sleepListener() {    print("Sleep Listening");}func wakeUpListener() {    print("Wake Up Listening");}

要么

NSWorkspace.shareDWorkspace().notificationCenter.addobserver(self,selector: "sleepListener:",object: nil)        NSWorkspace.shareDWorkspace().notificationCenter.addobserver(self,selector: "wakeUpListener:",object: nil)func sleepListener(aNotification : NSNotification) {    print("Sleep Listening");}func wakeUpListener(aNotification : NSNotification) {    print("Wake Up Listening");}

或者甚至更好

NSWorkspace.shareDWorkspace().notificationCenter.addobserver(self,object: nil)NSWorkspace.shareDWorkspace().notificationCenter.addobserver(self,object: nil) func sleepListener(aNotification : NSNotification) {            if aNotification.name == NSWorkspaceWillSleepNotification{                print("Going to sleep")            }else if aNotification.name == NSWorkspaceDIDWakeNotification{                print("Woke up")            }else{                print("Some other event other than the first two")            }        }

在你添加这些观察者的地方也很重要.对我来说,他们都是应用代表,他们都工作.

希望有所帮助

总结

以上是内存溢出为你收集整理的macos – 无法在swift OSX中接收NSWorkspaceDidWakeNotification全部内容,希望文章能够帮你解决macos – 无法在swift OSX中接收NSWorkspaceDidWakeNotification所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1003886.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存