RubyCocoa一日目
「入門 Cocoa」のp70で作る日付表示AppをRubyCocoaでカンで作ってみる。
某flex日記を真似して作業ログをつくってみた。
RubyCocoaインストール
どうやったかよく覚えていないが、とりあえずXCodeを入れる。
最新版RubyをたしかDarwinPortsからいれた。(もしかしたらfinkかも)
RubyCocoa最新版をダウンロード:
http://sourceforge.net/project/showfiles.php?group_id=44114
Interface Builderでnibファイルいじり
MainMenu.nibを開く。ぜんぜんMainMenuじゃないんでMain.nibに名前かえてやったが大丈夫そう。
メニューいじり
いらなそうなメニュー項目をDelete! Delete! Delete!
メインウィンドウ作る
Instancesペイン -> Windowダブルクリック
インスペクタを開いて適当にプロパティいじってみる
- Attributes: Window Title
- Size: 適当にいじったらLock
ツールボックスからTextFieldを追加。サイズ等適当に調整
コントローラクラスつくる
Classesペイン -> NSObject右クリック「Subclass NSObject」
MyControllerに名前変更
Add Outlet to MyControllerで名称textDate
アウトレットはnibファイルからオブジェクトが初期化されたときに自動的に設定されるインスタンス変数。
今回はコントローラ(MVCのC)クラスをnibから自動的に初期化する設定にする。
その際、自動でtextDateインスタンス変数が先ほど作ったtextFieldのNSTextFieldオブジェクトを指すようにする。
MyController右クリック「Instantiate MyController」
Instancesペインに戻る
MyControllerを先ほど作ったTextField(UIデザイナ上)までCtrlドラッグして先ほどのtextDateアウトレットに関連づけする。
nib保存して閉じる
XCodeに戻って作業再開
グループとファイル:「ShowDate」「Classes」フォルダ右クリック:「追加」「新規ファイル」「Ruby NSObject subclass」
require 'osx/cocoa' class MyController < OSX::NSObject ib_outlet :textDate def awakeFromNib p "testtest" end end
ビルドして実行する。
ログウィンドウにtesttestが表示されてる!
awakeFromNibメソッド定義かえる。
def awakeFromNib @textDate.setObjectValue(OSX::NSCalendarDate.date) end
実行。おぉ!動くぜ!