2010年9月10日金曜日

Day 3 OpenURL openMaps: カスタマイズ(1)住所を直接入力する

ボタンをタップして決めうちの住所をgoogleMapsで表示するのではなく、テキストフィールドを実装してキーボードから住所を入力できるようにカスタマイズする。

UIKitフレームワークには、テキストコンテンツを表示するために、次の3つの主要なクラスがあります。
■ UILabel:静的なテキスト文字列を表示する
■ UITextField:編集可能な単一行のテキストを表示する
■ UITextView:編集可能な複数行のテキストを表示する

住所は1行程度の入力になると想定して、UITextFieldクラスを利用する。

編集可能なText Viewで作業をする場合は、常に、編集セッションを管理するデリゲートオブジェクトを提供する必要があります。
View Controllerは、それ自体がこのテキストフィールドのデリゲートになるため、UITextFieldDelegateプロトコルを採用しなければなりません。クラスがプロトコルを採用することを指定するには、インターフェイスで、そのクラスの継承元のクラスの名前の後に、角括弧(<>)で囲んでプロトコル名を追加します。

TextField を実装するソースコードは以下のようにした。

インターフェイスで、デリゲートを設定する。
RootViewController.h
#import <UIKit/UIKit.h>

@interface RootViewController : UIViewController <UITextFieldDelegate> {
 UIView *view;
 UITextField *txtField;
}
@end

TextField の実装は、loadView メソッドで行う。
デフォルトの画面 UIView に、テキストフィールドのビュー UITxetField を追加する。

RootViewController.m

-(void)loadView{
 
 view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
 view.backgroundColor = [UIColor grayColor];
 self.view = view;

 txtField = [[UITextField alloc] initWithFrame:CGRectMake(63, 56, 200, 30)];
 txtField.borderStyle = 3;
 txtField.placeholder = @"Enter Adress";
 [self.view addSubview: txtField];
 txtField.delegate = self;
 txtField.returnKeyType = UIReturnKeyDone;

 [txtField release];
 [view release];

}

参考PDF:iPhone アプリケーションプログラミングガイド
iPhone アプリケーション チュートリアル