RubyCocoa 1.0に付属するrb_nibtoolコマンドやAppleにより提供される開発ツールは、Rubyプログラムによるコントローラクラス定義中のib_action定義・宣言やib_outlet宣言を解析して、RubyプログラムファイルやNibファイル(GUI定義ファイル)を自動生成・更新することができます。この仕組みを機能させるため、RubyCocoa 1.0では、コントローラとなるクラスにアクションを定義する場合、以下のどちらかの記法で書くことを推奨します。

  • アクションとして定義したメソッドをib_action宣言する
  • ブロック付きib_actionを使ってアクションを定義する

アウトレットの宣言には、従来通り、ib_outletもしくは複数形のib_outletsを使います。


  class MyController < OSX::NSObject
    # ib_outlet宣言
    ib_outlets :timeField, dateField

    # ib_actionによるアクションの定義
    ib_action :printTime do |sender|
      @timeField.stringValue = Time.now.to_s
    end

    # メソッドを定義し、それをib_action宣言
    def printDate(sender)
      @dateField.stringValue = Time.now.strftime("%Y-%m-%d")
    end
    ib_action :printDate
  end