可编写脚本的菜单栏图标


8

有什么简单的方法可以将自定义图标添加到菜单栏状态区域?理想情况下,类似Growl(例如,您可以在其中执行命令)之类的东西,而不是通知,而是在菜单栏中呈现图标。

我主要是想画一些数字来提醒我各种事情。例如,我可以将电子邮件客户端配置为运行命令/ AppleScript以在收到某种电子邮件时更新号码。

像这样:

img

Answers:


4

我建议从此线程开始,该线程描述了从AppleScript内部使用Cocoa Objective-C调用。有一个例子Xcode项目在这里

Launch是一个用AppleScript编写的功能完整的应用程序。它的Xcode项目文件在这里

基本前提是生成NSMenuItem实例并将其添加到系统的NSStatusBar中:

set statusMenu to (NSMenu's alloc)'s initWithTitle_("Launch")
-- (build and do stuff with the statusMenu here)
set sysStatusBar to NSStatusBar's systemStatusBar
set statusItem to sysStatusBar's statusItemWithLength_(32)
tell statusItem to setMenu_(statusMenu)
tell statusItem to setHighlightMode_(1)
set menuImage to NSImage's imageNamed_("icon.png")
tell statusItem to setImage_(menuImage)

AppleScript摘自Launch的源代码,版权所有©Lee Hanken



3

好的,我为此做了一个应用程序。它在GitHub:0942v8653 / ScriptableStatusBar上。只需保持应用程序运行并使用该sbar工具即可设置和删除项目。

如自述文件所述:

sbar set face 😃 'Bye!:sbar remove face'

在状态栏中创建一个面孔。菜单将具有一个选项Bye!,该选项sbar remove face将摆脱其创建的菜单。


您可以从https://github.com/0942v8653/ScriptableStatusBar/releases下载编译版本。


很好,但是为什么您要注册所有分布式通知,而不是名称为“ io.github.0942v8653.ScriptableStatusBar”的通知?
Mateusz Szlosek 2014年

@MateuszSzlosek好问题。稍后会解决:P
0942v8653 2014年

1
@MateuszSzlosek固定。
0942v8653

您应用的功能似乎与“ BitBar”(如上所述)非常相似;虽然您的图标带有一个图标(不确定BitBar是否具有),但另一个图标则允许几乎任何脚本语言(带有std-out)都可以非常容易地在右侧菜单栏中显示其输出。我用它来“合成”一个苹果脚本,该苹果脚本“返回”我正在使用的工作区的当前数量(就像以前的OS版本一样)。脚本只需放入插件文件夹&EXTRA!名称的一部分(例如xx.3s.sh => 3秒)指定重复间隔。状态显示非常有用!
clemsam lang 18/12/4

2

您也可以使用RubyCocoa

require "osx/cocoa"
include OSX

app = NSApplication.sharedApplication
statusitem = NSStatusBar.systemStatusBar().statusItemWithLength(NSVariableStatusItemLength)
statusitem.setTitle("aa")
app.run


0

是的,您可以为此在Xcode中创建一个Cocoa应用程序。不,您不能使用applescript来做到这一点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.