[XCode 4.3]Text Fieldの入力が終わったら次のText Fieldにソフトウェアキーボードでカーソルを移動させて最後にボタンを押す方法
2013/09/06
![]()
XCodeをしこしこやっております。ほーく(@hawk_a)です。
プログラムの中身はもちろん大事なんですが、アプリは操作性も非常に重要でございます。
なかでも文字入力を行うテキストフィールドの入力カーソル(入力位置を示す印)が、あれよあれよとスムーズに移動するというのは、大切な要素だと思っております。
なのでその方法を。
テキストフィールドを移動させる方法
結論から言えば1行のコードを書くだけで実行できます。
ではやってみましょう。
今回は、
- テキストフィールドに文字を打ち込む度に次のテキストフィールドに移動
- 最後のテキストフィールドに文字を打ち込んでからソフトウェアキーボードの「return」をタップ
- ラベルの文字が変わる
という処理を書いてみましょう。
まずはStoryBoardでUIButtonとUITextField、UILabelを設置いたします。

そして、プロジェクトのヘッダーファイル(.hのほう)に以下の様な感じで宣言をして、StoryBoardでアウトレットとアクションをつなげます。
繋がってれば左の◯が◎になります。

@interface ViewController : UIViewController {
// テキストフィールド
IBOutlet UITextField *text1;
IBOutlet UITextField *text2;
IBOutlet UITextField *text3;
// ボタン
IBOutlet UIButton *button;
// ラベル
IBOutlet UILabel *label;
}
- (IBAction)text1_end:(id)sender;
- (IBAction)text2_end:(id)sender;
- (IBAction)text3_end:(id)sender;
- (IBAction)button_down:(id)sender;
@end
アウトレットはこんな感じ。

アクションはこんな感じ。
ボタンは「Touch Down」、テキストフィールドは「Did End On Exit」でつなげましょう。

ついでにStoryBoardで、それぞれのUITextFieldの「Return Key」をNextとかに変えてやればそれっぽくなります。

んで、実装ファイル(.m)に処理をカキカキしていきます。

[次のテキストフィールド becomeFirstResponder]でカーソルが移動して、最後のテキストフィールドにはbutton_downの処理を実行させるような記述をしています。
- (IBAction)text1_end:(id)sender {
[text2 becomeFirstResponder];
}
- (IBAction)text2_end:(id)sender {
[text3 becomeFirstResponder];
}
- (IBAction)text3_end:(id)sender {
[self button_down:self];
}
- (IBAction)button_down:(id)sender {
label.text = @"お茶!";
}
もちろん、最後のテキストフィールドに直接処理を書いてやってもOK!
んで実行すると、カーソルが移動するはずです。

最後にこうなれば成功です。伊藤園。

関連記事
-
-
[XCode]追加してインポートしたヘッダーファイルが見つからないときの対処法3つ
XCodeでインポートの宣言をした際(import <hoge.h> …
-
-
[XCode]Title set but using a system Identifierなる警告が出たときの対処法
最近iPhoneアプリ開発を始めた@hawk_aです。 StoryBoardを使 …
-
-
[XCode]UIViewControllerからUISplitViewController 1つのビューからSplitViewに遷移させる方法
先日、アプリを初めてAppleに申請しました。@hawk_aです。 iOS開発の …
-
-
無料でプライベートリポジトリをゲットできるgitBREAKがかなり使える
gitといえばおおよそgithub。しかしgithubは無料でパブリックリポジト …
-
-
[XCode]ARC使用中にエラー「EXC_BAD_ACCESS」「respondsToSelector」が出た場合の対処法
なんでも、このエラーは解放済み(ゾンビ)のインスタンスにアクセスした時に出るエラ …
-
-
[XCode]iPhoneに入っていないフォント(カスタムフォント)を使えるようにする方法と注意点
iPhoneは結構いろんなフォントが使えますが、「オリジナルのフォントを使いたい …
-
-
信じられないほど簡単にオブジェクト指向って何?を解決してくれる本
「俺がやらなきゃ誰かやる」が合言葉の社会に生きている僕です。分からないことを分か …
-
-
開発したiOSアプリに不具合を見つけた時に緊急で審査期間を早くしてもらう方法
先日とうとう恐れていたことが起こりました。黒い怪物が部屋に出たとかそういうことで …
-
-
[XCode]親子関係じゃないView間で値の受け渡しをする方法
@hawk_a 親子じゃないときは、Appdelegateに変数書いてそれを参照 …
-
-
プログラミングができるだけではプロジェクトは成功しない
プログラマーなのに最近は電話対応で1日が終わる僕です。いろんな所でうめき声ととも …