カスタム検索

2008年12月31日水曜日

iPhoneで動かすHelloWorld その4

インフルエンザで死んでおります・・・胃が痛い(T_T)
高熱でちょっと忘れかけておりますが、日々の積み重ねが大事です!

ではViewControllerの実装です。

MyViewController.m で警告が出ているはずです。
MyViewController.h で property 指定した textField , label , string に対するメソッドがないという事なので、アクセサメソッドの実装をしてやります。


@synthesize textField;
@synthesize label;
@synthesize string;


これらのインスタンス変数が正しく解放されるように dealloc に追記します。


- (void)dealloc {
[textField release];
[label release];
[string release];
[super dealloc];
}


ボタンを押させると changeGreeting がコールされる所まで確認しましたので、ここでテキストフィールドから文字列を取得し、ラベルを書き換えるようにします。


- (IBAction)changeGreeting:(id)sender {
self.string=textField.text; // textFieldから文字列を取得し、自身のstring変数に格納します。

NSString *nameString=string;
if([nameString length]==0) {
nameString=@"World"; // textFieldの文字列が空なら World を代入する
}
NSString *greeting=[[NSString alloc] initWithFormat:@"Hello, %@!",nameString]; // ラベルに表示するメッセージを作成
label.text=greeting;
[greeting release];
}


ここまででビルドすると、以下のような結果が得られます。



大筋は完了しましたが、キーボードが閉じられない事に気がつくでしょう。
MyViewController.m に以下のコードを追記します。


- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
if(theTextField==textField) {
[textField resignFirstResponder];
}
return YES;
}


再度実行すると、Doneでキーボードが隠れる事を確認できます。

以上で完成です!思ったより長かったです・・・体が痛い(T_T)

0 件のコメント: