-------------------------
1.
テキストフィールドをタップしたときにキーボードを表示し、ユーザーがキーボードの「Done」ボタンをタップしたときにキーボードを非表示にする。
2.
テキストフィールドの下にある「openMaps」ボタンをタップすると、googleMapsが開き、テキストフィールドに入力した場所の地図が表示される。
-------------------------
UITextFieldDelegateプロトコルには、ユーザが「Return」ボタンをタップしたときにテキストフィールドを呼び出す(ボタンに表示されるテキストがどのようなものであっても)、textFieldShouldReturn:メソッドが含まれています。
textFieldShouldReturn:
Asks the delegate if the text field should process the pressing of the return button.
View Controllerはテキストフィールドのデリゲートとして設定したため、このメソッドを実装して、resignFirstResponderメッセージを送信する(キーボードを閉じる効果を持つ)ことによって、テキストフィールドからファーストレスポンダステータスを強制的になくすことができます。
resignFirstResponder
Notifies the receiver that it has been asked to relinquish its status as first responder in its window.
これを元に実装したソースは以下の通り。
-(BOOL)textFieldShouldReturn:(UITextField *)tf{ [tf resignFirstResponder]; return YES; }
テキストフィールドに入力された文字を openMaps: メソッドに渡し、openURL でgoogleMapsを実行する処理は以下のように実装した。
-(void)openMaps:(id)sender { self.addString = txtField.text; NSString* addressText =self.addString; addressText = [addressText stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; NSString* urlText = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@",addressText]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlText]]; [addString release]; }シミュレーターには日本語キーボードがないようなので、日本語入力を試すことが出来なかった。
参考PDF:
iPhone アプリケーション チュートリアル