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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)