Cocoaはじめの一歩というサイトの歩き方です。
Cocoaはじめの一歩にある練習問題を通じでXcodeとobjective-Cになじもうとする企画です。
では練習問題5と練習問題6をやって見ましょう。
練習5は身長と体重からBMIを、身長から標準体重を、それぞれ求めるプログラムを作るのが目的です。さらに練習6としてウィンドウを閉じたときにアプリを終了させる仕組みを作りこみます。
BMIを調べてみると、BMIとはバイオマスインデックスの頭文字であることがわかります。いわゆるデブ度の指数です。最近はメタボ流行りでBMI以外の数値も使われていますね。なんだかんだで、BMIの算式の方は一般常識として知っている人も多いかもしれませんが、単位に気をつけてください。
xillionはこんなインターフェイスで作成しました。

問題文にバインディングの話題がありますが、そのヘンは後々やっていくとして、ターゲット&アクションアーキテクチャ(単なるボタンのアクションです)を使用しましょう。
解答です。
Exercise5.zip
xillionはコントローラとデリゲートを分けてしまってますが、一つのインスタンスでOKです。
小数点2桁で表示させるためフォーマットを使用しています。
[ bmiField setStringValue: [ NSString stringWithFormat:@"%.2f",bmi ] ];
プログラムではなく、IBを使ってフォーマットを適用させることができます。
いろいろと探ってみてくださいね。
因に、C言語の簡単な例として、よくでてくるprintf関数を使ってみたところ、実行ログに表示するようです。
つぎに練習6です。
きっとawakeFromNibみたいなアプリケーションのメソッドがあるのでしょう。マニュアルをcloseとかshutdownとかterminateとかで調べてみましょう。xillionはapplicationShouldTerminateAfterLastWindowClosed:というNSApplicationのデリゲートメソッドを発見しました。読んで字のごとく、すべてのウィンドウが閉じたときにアプリを終了させるかどうかの指示ができます。ここでYESをリターンすると、アプリが終了します。
アプリとして不満が残るのは身長をメートルで入力させる部分でしょう。普通身長はcmを単位としたいですね。次の練習問題もBMIですから、そちらでがんばりましょう。