Mac 小白,遇到的问题如题所示,想做一个 status bar 的应用来显示一个扩展列表,这样能够把全部的图标都显示出来,有些应用只提供了状态栏图标,因此不显示的话很不方便。
NSStatusBar 的接口不提供全局的 NSStatusItem 列表,但是通过 CGWindowListCopyWindowInfo 接口能够得到全部的窗口,然后状态栏上的窗口的 windowLayer 的值都是 25 ,因此可以通过这个属性筛选出来,这个获取的窗口信息如下:
{
kCGWindowAlpha = 1;
kCGWindowBounds = {
Height = 37;
Width = 47;
X = 1052;
Y = 0;
};
kCGWindowIsOnscreen = 1;
kCGWindowLayer = 25;
kCGWindowMemoryUsage = 2288;
kCGWindowNumber = 109;
kCGWindowOwnerName = Stats;
kCGWindowOwnerPID = 1413;
kCGWindowSharingState = 0;
kCGWindowStoreType = 1;
}
想知道兄弟们通过这些信息有没有方法操作状态栏上的程序(包括被隐藏的),即便是能够发送点击事件也好呀
1
minamike 2023-01-16 16:43:20 +08:00 via iPhone
买个 bartender 吧
|
3
netabare 2023-01-16 16:52:36 +08:00 via Android 1
之前想做,不过发现 SwiftUI 提供的 api 只支持添加按钮,不支持获取别的 app 已经注册的按钮或者和这些按钮交互的功能,放弃了。
|
4
netabare 2023-01-16 16:53:16 +08:00 via Android 1
bartenter 好像是用录屏的方式获取图标信息的,估计也用了一些私有 api 。
|
5
dddd1919 2023-01-16 16:58:19 +08:00
免费版的 hidden bar 够用
|
6
objectxiang 2023-01-16 22:36:26 +08:00
Barbee 开发者来了🤣 建议楼主别折腾啦,实在不行我可以送🐴️
|
7
gzl OP @objectxiang 原来还有这个!我直接付费体验一下
|
10
objectxiang 2023-01-16 22:50:44 +08:00
@gzl 这个软件开发难度有点大,如果是兴趣的话,建议换个(真心话。 等我过年再更新下,问题还是挺多的,🤣个人 App 测试有限
|
11
netabare 2023-01-17 03:25:34 +08:00 1
@objectxiang 看了一下跟 bartender 好像,不太符合要求……有没有可以把图标归类为不同类型分别收纳进一个横栏里面,可以多个横栏隐藏或者显示的功能呢?
|
12
objectxiang 2023-01-17 09:15:49 +08:00
@netabare 可以使用 Barbee Widget ,这个可以满足你的需求。你可以放你想放的图标🤣
|
13
QingStone 2023-01-18 21:10:55 +08:00 via iPhone
推荐使用 barbee !
|