カスタム検索

2008年12月31日水曜日

iPhoneで動かすHelloWorld その4

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

ではViewControllerの実装です。

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

  1. @synthesize textField;  
  2. @synthesize label;  
  3. @synthesize string;  


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

  1. - (void)dealloc {  
  2.  [textField release];  
  3.  [label release];  
  4.  [string release];  
  5.     [super dealloc];  
  6. }  


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

  1. - (IBAction)changeGreeting:(id)sender {  
  2.  self.string=textField.text;  // textFieldから文字列を取得し、自身のstring変数に格納します。  
  3.    
  4.  NSString *nameString=string;  
  5.  if([nameString length]==0) {  
  6.   nameString=@"World"// textFieldの文字列が空なら World を代入する  
  7.  }  
  8.  NSString *greeting=[[NSString alloc] initWithFormat:@"Hello, %@!",nameString]; // ラベルに表示するメッセージを作成  
  9.  label.text=greeting;  
  10.  [greeting release];  
  11. }  


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



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

  1. - (BOOL)textFieldShouldReturn:(UITextField *)theTextField {  
  2.  if(theTextField==textField) {  
  3.   [textField resignFirstResponder];  
  4.  }   
  5.  return YES;  
  6. }  


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

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

0 件のコメント: