MonoTouchでHelloWorld!!
MonoTouchを使ってC#でHelloWorldをやってみましょう。
MonoDevelopを起動して、ソリューションの作成。
ファイル→新規→ソリューションを選択すると、ソリューション作成ダイアログが表示されます。
ソリューション名:Helloworld_Sol
プロジェクト名:Helloworld
まぁ、このあたりは任意で指定してください。
次に『プロジェクトの機能』を聞かれますが、そのまま何も選択せずOK。
すると新しいプロジェクトが生成される。
構成はこんな感じ。
□Main.cs
Applicationクラスにはmain関数がある。
今回、実行処理はAppdelegateクラスのFinishedLaunching関数内に記述します。
□MainWindow.xib
これはアプリのGUI定義ファイルです。
MainWindow.xib をダブルクリックするとInterface BuilderというGUI設計ツールが起動します。
Interface Builder上でラベルとボタンを配置する。
Library(画面左)からラベルとボタンをドラッグしてWindow(画面中央上)に配置。
各コントロールのプロパティは画面右(名称が分からない)の項目で定義する。
ラベルとボタンのTextに適当な文字を入力。
Interface Builderに定義しただけのの状態では、MonoDevelopが各コントロールの変数名やイベントを認識できていません。
ここで各コントロールのアウトレットを作成する。
(※サンプルはSnow Leopard
各コントロールのアウトレット作成はLeopardとSnow Leopardで操作方法が違います。)
Library→Classesタブ→Appdelegat(リスト一覧から)の順で選択します。
下段Appdelegateで『outlets』タブを選択し一番下の『+』ボタンをクリック。
各コントロールのOutlet(変数名)を定義し、MonoTouchのソース中で使用する変数名として認識させる。
Type項目はid(C#で言うところのObject型?)のままでOK。
逆にソース側からアクセスする必要のないコントロールは定義する必要は無いように思います。
MainWindow.xib(画面中央下)でAppDelegateを選択します。
その後右画面上段のタブConnectionsをクリックします。
各コントロールのOutletsが一覧に表示されることが確認できました。
この状態ですでにwindowコントロールの右の丸は●になっていると思います。
そこでほかの各コントロールの右側の○をドラッグしながらWindow(画面上)内の各コントロールのところでドロップします。
コントロール右の○が●になればバインド完了。
ちなみに各コントロールからAppdelegateにバインドする方法もあるのでお好みで。
次に各コントロールのActionsにイベントを追加します。
Library→Classesタブ→Appdelegat(リスト一覧から)の順で選択、下段Appdelegateで『Actions』タブを選択し一番下の『+』ボタンをクリック。
今回はボタンクリックイベントを定義。
再びMainWindow.xib(画面下)でAppDelegateを選択し、その後画面右のタブConnectionsをクリックするとReceivd Actionsに定義したイベントが追加されている。
ここで、アクションの右の○をドラッグしながらWindow(画面上)内のボタンのところでドロップします。
ドロップしたコントロールのイベント一覧が表示されるので任意で選択する。
今回は『TouchDown』を選択。
これでMonodevelopとの連携が取れているはず。
interface Builderを保存して終了します。
MonodevelopでMainWindow.xib.designer.csを開くとinterface Builderで定義したコントロールとイベントが追加されているのが確認できます。
では実際の処理部分を記述しましょう。
AppDelegateクラスにボタンイベントを記述。
Partial btnHelloClick (MonoTouch.UIKit.UIButton sender)
{
this.lbnHello.Text = "Hello World!";
};
MainWindow.xib.designer.csにPartialと宣言されているため、こちらでも同じ関数名に。
では実際に動かしてみよう。
ボタンをクリックすると、
おお、表示されました。