gpt4 book ai didi

swift - 如何使用 Swift 以编程方式让 Mac 进入休眠状态

转载 作者:行者123 更新时间:2023-11-30 10:26:16 41 4
gpt4 key购买 nike

我正在编写一个程序,让我的 MacBook Pro 在应用程序打开时进入休眠状态,但我似乎无法弄清楚。我不知道这是否与电源管理有关,但从我发现的情况来看,它与 IOKit.pwr_mgt 有关。我们将不胜感激您的帮助!下面的代码只是如何启用 sleep 模式但不让计算机进入休眠模式。我还找到了 applicationDidFinishLaunching 函数,因此代码位于该函数中。

var assertionID: IOPMAssertionID = 0
var success = IOPMAssertionRelease(assertionID)

最佳答案

与电源管理无关。您实际上需要使用您的应用程序运行脚本。

实现此目的的最简单方法是首先禁用您的应用程序沙箱功能。

接下来转到您的应用 info.plist 并添加 NSAppleEventsUsageDescription 键和说明,例如 “此应用需要您的许可才能使显示屏进入休眠状态.".

现在您只需执行一个 Apple 脚本,告诉应用程序系统事件进入休眠状态。 “告诉应用程序“系统事件”进入休眠状态”:

创建一个方法来执行该脚本:

func startScreenSleep() {
let script = "tell application \"System Events\" to sleep"
guard let appleScript = NSAppleScript(source: script) else { return }
var error: NSDictionary?
appleScript.executeAndReturnError(&error)
if let error = error {
print(error[NSAppleScript.errorAppName] as! String)
print(error[NSAppleScript.errorBriefMessage] as! String)
print(error[NSAppleScript.errorMessage] as! String)
print(error[NSAppleScript.errorNumber] as! NSNumber)
print(error[NSAppleScript.errorRange] as! NSRange)
}
}
<小时/>

并从 ViewController 的 viewDidLoad 方法调用它:

override func viewDidLoad() {
super.viewDidLoad()
startScreenSleep()
}

关于swift - 如何使用 Swift 以编程方式让 Mac 进入休眠状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60030291/

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