コントロールの再配置
図10を見てわかるように、表示方向を変更してもコントロールの大きさと位置は変わっていません。理想的には、表示方向に応じて画面上のコントロールを再配置すべきです。
Interface Builderに戻り、Labelコントロールを選択し、[Tools]→[Size Inspector]を選択します。コントロールのAutosizing属性を図11のように変更します。これでLabelコントロールが表示方向の変更に応じて拡大/縮小するようになります。同時に、このコントロールは画面の左側、上側、および右側にアンカー設定されます。
![図11 Autosizing: Labelコントロールの属性をオートサイズに変更](http://cz-cdn.shoeisha.jp/static/images/article/3467/11.png)
同じようにして、Text FieldコントロールのAutosizing属性を変更します。
最後に、Round Rect ButtonコントロールのAutosizing属性を変更します。今度は、表示方向を変更したとき、コントロールの大きさは変えず、画面上側にアンカー設定されるようにだけします。
実際にどうなるか確認してみましょう! Interface Builder内で、画面右上隅にある矢印をクリックすれば、画面が回転して変更をすぐ確認できます(図12を参照)。
![図12 変更の確認: Interface Builder内での表示の回転](http://cz-cdn.shoeisha.jp/static/images/article/3467/12.png)
Xcodeに戻り、アプリケーションを再び実行します。今度は画面の回転に応じてコントロールの位置と大きさが自動的に変化します。
コードの記述
今までのところ、まだコードを書いていません。XcodeとInterface Builderに十分慣れてから、コーディングに取り掛かった方がよいと考えるからです。それでも、iPhoneプログラミングの感じをつかむために、少しだけコードを書いてみましょう。
前述のように、Interface BuilderにはHelloDevXViewController.xibという名前のウィンドウがあります。このウィンドウを見ると、File's Owner、First Responder、Viewの3つのコンポーネントがあります(図13を参照)。File's Ownerを選択し、[Tools]→[Identity Inspector]を選択します。
![図13 HelloDevXViewController.xib: イベントハンドラの作成](http://cz-cdn.shoeisha.jp/static/images/article/3467/13.png)
HelloDevXViewController Identityウィンドウで、Class Actionsの下にある「+」ボタンをクリックします。このアクションの名前をbtnClicked:とします(コロンを忘れずに付けてください)。これでbtnClicked:というイベントハンドラが作成されます。
Controlキーを押しながらViewウィンドウのRound Rect Buttonコントロールをクリックし、HelloDevXViewController.xibウィンドウのFile's Owner項目までドラッグします(図14を参照)。btnClicked:イベントを含む小さなポップアップが表示されます。btnClicked:イベントを選択します。要するに、ここではRound Rect Buttonコントロールのクリックイベントをイベントハンドラとリンクしています。
![図14 btnClicked:: イベントとイベントハンドラのリンク](http://cz-cdn.shoeisha.jp/static/images/article/3467/14.png)
「HelloDevXViewController.h」ファイルで、btnClicked:イベントのヘッダー宣言を追加します。
// // HelloDevXViewController.h // HelloDevX // // Created by Wei-Meng Lee on 11/12/08. // Copyright Developer Learning Solutions 2008. All rights reserved. // #import <UIKit/UIKit.h> @interface HelloDevXViewController : UIViewController { } //---declaration for the btnClicked: event--- -(IBAction) btnClicked:(id)sender; @end
「HelloDevXViewController.m」ファイルで、btnClicked:イベントの実装を提供するコードを追加します。
- (void)dealloc { [super dealloc]; } //---implementation for the btnClicked: event--- -(IBAction) btnClicked:(id)sender { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello DevX" message: @"iPhone, here I come!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; [alert release]; } @end
上記のコードは、「iPhone, here I come!」という内容の警告ウィンドウを表示します。Xcodeコードに戻り、アプリケーションを再び実行します。今度は、Buttonコントロールをタップすると、警告ウィンドウが表示されます(図15を参照)。
![図15 警告ウィンドウ: ボタンをタップすると、警告ウィンドウが表示される](http://cz-cdn.shoeisha.jp/static/images/article/3467/15.png)
本稿のまとめ
本稿では、あまりコーディングをしませんでしたが、XcodeとInterface Builderを使って、ごく簡単なiPhoneアプリケーションを作成できるようになりました。Objective-C言語を使ったさらに複雑な作業については、次回以降の記事で解説するのでご期待ください。