【问题标题】:How to observe other application icon in OS X?如何在 OS X 中观察其他应用程序图标?
【发布时间】:2016-04-03 18:10:29
【问题描述】:

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

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

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

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

【问题讨论】:

标签: swift macos cocoa


【解决方案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
    }
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多