swift – 监控OS X上的app切换

我想知道,从一个Swift应用程序中,当用户从一个应用程序更改为另一个应用程序时,一般情况下.

例如:从Google Chrome切换到Xcode等其他应用会触发此事件.

有没有办法获取应用程序切换事件,例如通过事件监视器?

您可以在NSWorkspace.sharedWorkspace().notificationCenter上添加观察者,以查看NSWorkspaceDidActivateApplicationNotification密钥.您将选择器指向您的一个方法,并从userInfo字典中获取信息.

AppDelegate中的简单示例:

斯威夫特2.2

func applicationDidFinishLaunching(notification: NSNotification) {
    NSWorkspace.sharedWorkspace().notificationCenter.addObserver(self,selector: #selector(activated),name: NSWorkspaceDidActivateApplicationNotification,object: nil)
}

func activated(notification: NSNotification) {
    if let info = notification.userInfo,app = info[NSWorkspaceApplicationKey],name = app.localizedName {
            print(name)
    }
}

斯威夫特3

func applicationDidFinishLaunching(_ aNotification: Notification) {
    NSWorkspace.shared().notificationCenter.addObserver(self,selector: #selector(activated(_:)),name: NSNotification.Name.NSWorkspaceDidActivateApplication,object: nil)
}

func activated(_ notification: NSNotification) {
    if let info = notification.userInfo,let app = info[NSWorkspaceApplicationKey] as? NSRunningApplication,let name = app.localizedName 
    {
        print(name)
    }
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...