前へ Xcc>Cocoa 次へ

テキストフィールドを選択

MyTextFieldができあがる。

 同じようにテキストフィールド側もスライダーの変更に合わせて更新されるようにしてみる。

 まずは、スライダー同様MainManu.nib(English)ウィンドウのClassesタグを選んでから、テキストフィールドを選択。

NSTextFieldが選択されている状態で

Classes>Subclass NSTextField

これで

MyTextField

が作成されたので、テキストフィールドのInspectorウィンドウを出し、Custum ClassタブでNSTextFieldからMyTextFieldに切り替える。

作成されたMyTextField.mとMyTextField.h

あとは

Classes>Add Action to MyTextField

 これでまた、同じようにmyActionができるので、今度はスライダーからテキストフィールドにControl+ドラッグ&ドロップしてmyActionを指定する。

 最後は

Classes>Create Files for MyTextField

としてできあがったファイル

MyTextField.m

に、Xcodeから例のまじないを書き込む。

- (IBAction)myAction:(id)sender
{
[self setIntValue:[sender intValue]];
}

いったんInterface Builderを終了。例によって保存を聞いてくるので保存。

Xcodeでビルドして実行するべし!

MyTextField の myAction

 NSTextFieldの時に指定したのに、MyTextFieldに変更しても、なにげに残ってるあたりが、さすがNEXT STEP、抽象化できておるのう。

ポップアップメニューに変えてよ。

ばっちり、動いたっすか〜?

 さて、ここで問題です。

 これを自慢した友達に、スライダーじゃなくポップアップメニューにして、0、50、100の値をぴたりと指定できるようにとかできね〜のとか言われたらどうよ?

 スライダーを削除して、ポップアップメニューを追加して例の Sub Class化ということになるわけで、苦労して作り直して見せたら、あ、やっぱラジオボタンがいいわとか、そうですか、じゃ最初から...

 で、さすがにこりゃ汎用性ゼロというわけで、あらたな打開策として第三者版を考えざるを得ないわけですわ。

おこるで終いに君〜。

あ、やっぱ、ラジオボタンがいいわ

現場でよく見かける光景。