gpt4 book ai didi

swift - 在屏幕解锁上激活应用程序

转载 作者:行者123 更新时间:2023-11-30 11:51:27 30 4
gpt4 key购买 nike

我正在为 macOS 编写一个应用程序,我希望它能够检测屏幕何时解锁,然后使其成为事件应用程序。我正在尝试使用“com.apple.screenIsUnlocked”,但它似乎不起作用(该函数甚至没有运行)。我还尝试使用 NSWorkspaceDidWakeNotification ,我得到了要运行的函数,但应用程序实际上并未激活(可能是因为屏幕仍然锁定)。这是我目前拥有的(我正在使用 Xcode 9.2 和 Swift 4):

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!


func applicationDidFinishLaunching(_ aNotification: Notification) {
// Insert code here to initialize your application
NSWorkspace.shared.notificationCenter.addObserver(self, selector: #selector(AppDelegate.screenDidUnlock), name: NSNotification.Name(rawValue: "com.apple.screenIsUnlocked"), object: nil)
}

func applicationWillTerminate(_ aNotification: Notification) {
// Insert code here to tear down your application
}

@objc func screenDidUnlock() {
NSApplication.shared.activate(ignoringOtherApps: true)
print("Did Run")
}

最佳答案

com.apple.screenIsUnlocked 通知发布到 DistributedNotificationCenter 而不是 NSWorkspacenotificationCenter ,所以观察者应该像这样添加:

DistributedNotificationCenter.default().addObserver(self, selector: #selector(AppDelegate.screenDidUnlock), name: NSNotification.Name(rawValue: "com.apple.screenIsUnlocked"), object: nil)enter code here

关于swift - 在屏幕解锁上激活应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48286938/

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