当前位置: 首页 > 面试题库 >

监视OS X上的应用切换

晋鹤轩
2023-03-14
问题内容

我想从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)
    }
}


 类似资料:
  • 出于某种原因,Maven忽略了OSX上的JAVA_主页。 我最近从Java8Build11升级到Java8Build25,由于25中的错误修复,我删除了11。 我已经更新了: java和javac都报告了正确的版本: 是否正确: 当前JDK符号链接正确: 但Maven仍在努力达到1.8。0_11: 运行OSX小牛队。 你知道为什么Maven忽略了JAVA\u HOME?

  • 是否有任何“开箱即用”的siteminder工具可以检查siteminder服务器/应用程序是否运行? 例如,我通过超文本传输协议:/mysiteminderApplication: myport/check_heartbeat.html的url发送请求,它会回复我实际状态,如ok、错误等。 抱歉,我从未见过siteminder安装,但我必须为客户检查这一事实。 提前谢谢你Patrick

  • 我有一个反向代理设置与nginx。 如何将从后端服务器发送到nginx的http请求(包括头)记录到文件中? 也许nginx http代理模块中的某个指令可以帮助我做到这一点。 但我找不到任何有用的指示。

  • 实现试衣间app首页中的上下滑动的特效,可以上拉视图查看下一张图片,也可以下拉将看过的图片再拉下来显示。视图变换时显示透明的效果。 [Code4App.com]

  • 本文向大家介绍Android 监听应用前/后台切换实例代码,包括了Android 监听应用前/后台切换实例代码的使用技巧和注意事项,需要的朋友参考一下 前言 这周接到一个需求,需要在应用从后台切换到前台时,展示我们的广告。展示页面其实可以复用以前的开屏广告页,唯一的问题就是如何监听应用从后台切到了前台。 正文 在众多方法中,我采用了以下这种方式。废话不多说,咱们直接看代码: 在清单文件中声明 在M