刘海版本的 Macbook 右上角状态栏空间不足

2023-01-16 16:32:47 +08:00
 gzl

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;
}

想知道兄弟们通过这些信息有没有方法操作状态栏上的程序(包括被隐藏的),即便是能够发送点击事件也好呀

2014 次点击
所在节点    macOS
13 条回复
minamike
2023-01-16 16:43:20 +08:00
买个 bartender 吧
gzl
2023-01-16 16:46:06 +08:00
@minamike 确实,是看了 bartender 想仿一下,就是不知道他们咋搞的:(
netabare
2023-01-16 16:52:36 +08:00
之前想做,不过发现 SwiftUI 提供的 api 只支持添加按钮,不支持获取别的 app 已经注册的按钮或者和这些按钮交互的功能,放弃了。
netabare
2023-01-16 16:53:16 +08:00
bartenter 好像是用录屏的方式获取图标信息的,估计也用了一些私有 api 。
dddd1919
2023-01-16 16:58:19 +08:00
免费版的 hidden bar 够用
objectxiang
2023-01-16 22:36:26 +08:00
Barbee 开发者来了🤣 建议楼主别折腾啦,实在不行我可以送🐴️
gzl
2023-01-16 22:46:48 +08:00
@objectxiang 原来还有这个!我直接付费体验一下
gzl
2023-01-16 22:48:30 +08:00
@dddd1919 hidden 试过了,能隐藏和展开,但想要的是那种单开一个栏把所有图标都放开
gzl
2023-01-16 22:49:37 +08:00
@netabare 听起来有些复杂(/_\)大怨种
objectxiang
2023-01-16 22:50:44 +08:00
@gzl 这个软件开发难度有点大,如果是兴趣的话,建议换个(真心话。 等我过年再更新下,问题还是挺多的,🤣个人 App 测试有限
netabare
2023-01-17 03:25:34 +08:00
@objectxiang 看了一下跟 bartender 好像,不太符合要求……有没有可以把图标归类为不同类型分别收纳进一个横栏里面,可以多个横栏隐藏或者显示的功能呢?
objectxiang
2023-01-17 09:15:49 +08:00
@netabare 可以使用 Barbee Widget ,这个可以满足你的需求。你可以放你想放的图标🤣
QingStone
2023-01-18 21:10:55 +08:00
推荐使用 barbee !

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/909295

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX