如何在OS X中观察其他应用程序图标?

时间:2016-04-03 18:10:29

标签: swift macos cocoa

我需要知道另一个正在运行的应用程序的当前显示图标,我已经尝试过这段代码:

var icon = NSRunningApplication.runningApplicationsWithBundleIdentifier("some.app.dentifier").first?.icon

但这会返回一个固定的应用图标,如果其他应用更改了其图标,则此代码在更改前仍会返回相同的图标。

有没有办法返回另一个应用或图标标识符的当前显示图标?

1 个答案:

答案 0 :(得分:0)

首先将其添加到applicationDidFinishLaunching

let appChanged = Notification.Name("NSWorkspaceDidActivateApplicationNotification")
  NSWorkspace.shared.notificationCenter.addObserver(self, selector: #selector(self.appChanged), name: appChanged, object: nil)

然后此功能将为您提供图像

@objc func appChanged(notification:NSNotification){
    if let userInfo = notification.userInfo![NSWorkspace.applicationUserInfoKey] as? NSRunningApplication {
      let icon = userInfo.icon
    }
  }