8

私のMacbookでデーモンとして実行され、一連のディレクトリでファイルの変更を監視し、発生した変更をrsyncするルビースクリプト( https://github.com/daemonza/MacBak )があります。上部のメニューバーにアイコンを作成できるようにできるだろうかと思っていましたか? psでチェックしなくても、実際に実行されていることがわかるように。

後で必要に応じて、そこからスクリプトを制御したり、停止やステータス エントリを含む単純なドロップダウンを実行したりしたいと思うかもしれません。

ObjectC から NSStatusItem を呼び出してアイコンを取得できるようですが、Ruby スクリプトから簡単に実行したいだけです。おそらく、私ができるアップルスクリプトの呼び出しでしょうか?

4

2 に答える 2

6

この 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
于 2012-04-19T15:39:46.133 に答える
1

MacRubyを見ることができます。これは、Objective-C の代わりに Ruby を使用して OS X アプリを開発する方法です。ヘッダーファイルを取り除くなど、多くの改善が含まれているため、Ruby には「実装」ファイルしかありません。ウィンドウの構築にもIBを使用できます

于 2012-04-19T15:40:17.003 に答える