我有一个ruby脚本(https://github.com/daemonza/MacBak)在我的macbook上作为守护进程运行,并监视一堆目录中的文件更改和rsync发生的任何更改.我想知道我能够让它在顶部的菜单栏中创建一个图标吗?只是为了让我知道它实际上正在运行,而不必用ps检查它.
也许以后如果需要我可能希望能够从那里控制脚本,简单的下拉停止和状态条目等.
从ObjectC看来我可以调用NSStatusItem来获取图标,但我真的只想从我的Ruby脚本中轻松完成.或许也许是一些我可以做的AppleScript电话?
此MacRuby脚本创建状态栏图标:https:
//github.com/ashchan/gmail-notifr
这个是这样的:https:
//github.com/isaac/Stopwatch
这是一个Gist,包括执行它的代码:https:
//gist.github.com/1480884
# We build the status bar item menu
def setupMenu
menu = NSMenu.new
menu.initWithTitle 'FooApp'
mi = NSMenuItem.new
mi.title = 'Hellow from MacRuby!'
mi.action = 'sayHello:'
mi.target = self
menu.addItem mi
mi = NSMenuItem.new
mi.title = 'Quit'
mi.action = 'quit:'
mi.target = self
menu.addItem mi
menu
end
# Init the status bar
def initStatusBar(menu)
status_bar = NSStatusBar.systemStatusBar
status_item = status_bar.statusItemWithLength(NSVariableStatusItemLength)
status_item.setMenu menu
img = NSImage.new.initWithContentsOfFile 'macruby_logo.png'
status_item.setImage(img)
end
# Menu Item Actions
def sayHello(sender)
alert = NSAlert.new
alert.messageText = 'This is MacRuby Status Bar Application'
alert.informativeText = 'Cool, huh?'
alert.alertStyle = NSInformationalAlertStyle
alert.addButtonWithTitle("Yeah!")
response = alert.runModal
end
def quit(sender)
app = NSApplication.sharedApplication
app.terminate(self)
end
app = NSApplication.sharedApplication
initStatusBar(setupMenu)
app.run
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1856 次 |
| 最近记录: |