gpt4 book ai didi

xcode - 如何获取 Mac 菜单栏中当前的图标列表?

转载 作者:行者123 更新时间:2023-12-03 17:09:38 29 4
gpt4 key购买 nike

我想访问 Mac 菜单栏中当前的图标,但找不到相关的 API 和类。我看过NSStatusBar (代表菜单栏),但它不提供对其包含的菜单栏应用程序的任何公共(public)访问。我还看过NSStatusItemNSStatusBarButton ,它们分别代表菜单栏中的项目及其视觉表示,但我发现的有关它们的所有内容都是关于制作您自己的。

如何以编程方式了解 Mac 菜单栏中的图标以及它们对应的应用程序?

最佳答案

您可以使用 CoreGraphics 中提供的功能:

let windowList = CGWindowListCopyWindowInfo([.optionOnScreenOnly], kCGNullWindowID) as! [[String: Any]]

for window in windowList {
let boundsDict = window[kCGWindowBounds as String] as! CFDictionary
let applicationName = window[kCGWindowOwnerName as String] as! String
let windowName = window[kCGWindowName as String] as! String

if let bounds = CGRect(dictionaryRepresentation: boundsDict), bounds.origin.y == 0 {
print(applicationName, windowName, bounds)
}
}

在测试过程中,我发现状态栏项目的边界粘在屏幕的最顶部。但尚未在多屏幕设置上进行测试。尽管如此,您所能获得的只是拥有状态栏项目的应用程序的名称。我还没有找到一种方法来创建引用栏上的项目的 NSStatusItem 实例。

关于xcode - 如何获取 Mac 菜单栏中当前的图标列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42912012/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com