2011年1月11日火曜日

XcodeでMacRubyをいぢってみる

本当にちょっといじってみただけです。

Developing Cocoa Applications Using MacRuby

このチュートリアルよりさらに手軽っぽいチュートリアルを見つけたのでそっちを試したみた。

Creating our very first Mac application with Ruby, how exciting!

アムステルダムのPhusion.ちゅー会社のblogらしい。本当にこのページにあったとおり、ウィンドウにLabelとButtonはりつけただけのプロジェクトを作って実際に動かしてみました。感動して雷に打たれたのが次の2点。

1,Xcode側で書いたControllerのクラスを、InterfaceBuilder側で「NSObject」として視覚的に挿入してインスタンス化すること

これにはびっくりこきました。(びっくりこく、は北海道弁でしょうか)挿入する、といってもNSObjectのアイコンをInterfaceBuilderのウィンドウにD&Dして、クラスの名前をXcode側のControllerのクラス名にするだけ、なのですが。「え?これでいいの?」という感じ。

2,InterfaceBuilder側の部品(・・・というのかな、LibraryからD&Dするパーツ群)に名前をつけず、Controller側で「attr_accessor」とかで準備した名前と「結びつける」だけでいい。

これも強烈にびっくりでした。右ボタンドラッグで結びつけるだけ部品の名前が勝手に「:my_label」とかになっちゃう。

さらに部品がわから右ボタンドラッグしたら、こんどはController側のイベントとその部品が結びつく、というあたり。

とりあえずこういうインターフェイスは初めてでした。あんまりびっくりして、かつ天啓のように理解できたので、自分でも簡単なプロジェクトを作ってみました。

1,InterfaceBuilder側で、ウィンドウにNSTextViewを貼り付ける。
2,Controllerはこれだけ。

class Controller < NSWindowController
attr_accessor :textView
  def file_open(sender)
    textView.insertText "MacRuby"
  end
end
本当にこれだけ(^^;)。 3,InterfaceBuilderでControllerをD&Dして、Class名をそろえて、TextViewにむけて右ドラッグ。これでTextViewが「textView」という名前と結びついて、Controller側から操作できるようになる。 4,で、今度はメインメニューの「File→Open」からControllerに右ドラッグ。
そうすると「def file_opne(sender)」と対応するようになる、と。 これで実行すると、「file→Open」を実行するたびに、TextViewに「MacRuby」と文字列が挿入されていく。

ふむふむ、無茶苦茶おもしろいじゃないのよ。明日ももう少し遊ぼう。今度はファイルを開くダイアログでファイルを開いて表示、というあたりかな。

こうな感じで遊んでいるので、なかなかrspecの勉強が進まないorz。

0 件のコメント:

コメントを投稿