使用Swift为OSX禁用睡眠屏幕保护程序

使用Swift为OSX禁用睡眠屏幕保护程序,第1张

概述我正在寻找一种方法来使用 Swift通过我的应用程序禁用睡眠模式和屏幕保护程序.我知道这 question有 been问 before,但没有一个答案是最新的(至少对于Swift;我不知道Objective-C). 我原本以为使用NSWorkspace.sharedWorkspace().extendPowerOffBy(requested:Int),但根据Apple’s documentatio 我正在寻找一种方法来使用 Swift通过我的应用程序禁用睡眠模式和屏幕保护程序.我知道这 question有 been问 before,但没有一个答案是最新的(至少对于Swift;我不知道Objective-C).

我原本以为使用NSWorkspace.shareDWorkspace().extendPowerOffBy(requested:Int),但根据Apple’s documentation,它目前尚未实现.

有什么建议?

解决方法 我最近遇到了这个 answer.它链接到Apple的 Q&A1340,并将清单2翻译成Swift.

我将它重构为一些不同的代码,它们展示了如何在整个runloop中使用它们.我确实检查了代码,但它确实有效.

var assertionID: IOPMAssertionID = 0var success: IOReturn?func disableScreenSleep(reason: String = "UnkNown reason") -> Bool? {    guard success != nil else { return nil }    success = IOPMAssertionCreateWithname( kIOPMAssertionTypeNodisplaySleep as CFString,IOPMAssertionLevel(kIOPMAssertionLevelOn),reason as CFString,&assertionID )    return success == kIOReturnSuccess}func  enableScreenSleep() -> Bool {    if success != nil {        success = IOPMAssertionRelease(noSleepAssertionID)        success = nil        return true    }    return false}

Q&A1340 answer还指出使用NSWorkspace.shared应仅用于支持OS X< 10.6.

总结

以上是内存溢出为你收集整理的使用Swift为OSX禁用睡眠/屏幕保护程序全部内容,希望文章能够帮你解决使用Swift为OSX禁用睡眠/屏幕保护程序所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存