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