加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – OS X中的菜单栏图标,用于作为守护程序运行的脚本?

发布时间:2020-12-17 04:39:38 所属栏目:百科 来源:网络整理
导读:我有一个 ruby脚本( https://github.com/daemonza/MacBak),它作为守护进程在我的macbook上运行,并监视一堆目录中的文件更改和rsync发生的任何更改.我想知道我能够让它在顶部的菜单栏中创建一个图标吗?只是为了让我知道它实际上正在运行,而不必用ps检查它.
我有一个 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读