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

4

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

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

但是这会返回一个固定的应用程序图标,如果其他应用程序更改了其图标,则此代码仍然返回更改前相同的图标。是否有一种方法可以返回另一个应用程序当前显示的图标或图标标识符?

这个代码库中的代码可能对你有帮助吗?链接 - Michael Dautermann
1个回答

1
首先将此添加到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
    }
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接