Exception Code.

iPhone、Macと読書が大好き。iPhone・Mac・書評を中心に好きな事を書いていました。今は『ほーくブログ』でブログを書いています。

[XCode 4.3]Text Fieldの入力が終わったら次のText Fieldにソフトウェアキーボードでカーソルを移動させて最後にボタンを押す方法

      2013/09/06

Xcode icon 375x375 75

XCodeをしこしこやっております。ほーく(@hawk_a)です。

プログラムの中身はもちろん大事なんですが、アプリは操作性も非常に重要でございます。

なかでも文字入力を行うテキストフィールドの入力カーソル(入力位置を示す印)が、あれよあれよとスムーズに移動するというのは、大切な要素だと思っております。

なのでその方法を。

テキストフィールドを移動させる方法

結論から言えば1行のコードを書くだけで実行できます。

ではやってみましょう。

今回は、

  • テキストフィールドに文字を打ち込む度に次のテキストフィールドに移動
  • 最後のテキストフィールドに文字を打ち込んでからソフトウェアキーボードの「return」をタップ
  • ラベルの文字が変わる

という処理を書いてみましょう。

まずはStoryBoardでUIButtonとUITextField、UILabelを設置いたします。

TextEditSample xcodeproj  MainStoryboard iPhone storyboard 5

 

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

繋がってれば左の◯が◎になります。

TextEditSample xcodeproj  ViewController h 3

@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

アウトレットはこんな感じ。

TextEditSample xcodeproj  MainStoryboard iPhone storyboard

 

アクションはこんな感じ。

ボタンは「Touch Down」、テキストフィールドは「Did End On Exit」でつなげましょう。

TextEditSample xcodeproj  MainStoryboard iPhone storyboard 3

 

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

TextEditSample xcodeproj  MainStoryboard iPhone storyboard 4 1

 

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

TextEditSample xcodeproj  ViewController 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!
んで実行すると、カーソルが移動するはずです。

IOSシミュレータ 3

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

IOSシミュレータ

 - 開発/プログラム

  関連記事

bloggerXcode-icon-375x375-75.png
[XCode]UIViewControllerからUISplitViewController 1つのビューからSplitViewに遷移させる方法

先日、アプリを初めてAppleに申請しました。@hawk_aです。 iOS開発の …

bloggerXcode-icon-375x375-75.png
[XCode]スキャナーで読み取れるバーコード(JANコード・Code39)をフォントで表示する方法と注意点

Passbookなどもそうですが、最近はクーポンや会員証などの電子化をよく目にし …

bloggerXcode-icon-375x375-75.png
[XCode]NSNotificationってなに?って人もとりあえずこれだけは知っておくべき

異なるクラス間で通知や変数を渡したりできる便利なNSNotificationです …

bloggerXcode-icon-375x375-75.png
開発したiOSアプリに不具合を見つけた時に緊急で審査期間を早くしてもらう方法

先日とうとう恐れていたことが起こりました。黒い怪物が部屋に出たとかそういうことで …

bloggerXcode-icon-375x375-75.png
[XCode]追加してインポートしたヘッダーファイルが見つからないときの対処法3つ

XCodeでインポートの宣言をした際(import <hoge.h> …

デスマーチを止める!システム開発の成功に「設計」と「テスト」は欠かせない

「デスマーチ」という、IT業界で名の知れた用語があります。 商品知識のない営業が …

[git]Coda2でgitを設定してWordPressのテーマファイルをバックアップする方法

ブログのテーマを作り直していろいろしています。家ではiMac、外ではMacBoo …

bloggerXcode-icon-375x375-75.png
[XCode]ARC使用中にエラー「EXC_BAD_ACCESS」「respondsToSelector」が出た場合の対処法

なんでも、このエラーは解放済み(ゾンビ)のインスタンスにアクセスした時に出るエラ …

bloggerXcode-icon-375x375-75.png
[XCode]Title set but using a system Identifierなる警告が出たときの対処法

最近iPhoneアプリ開発を始めた@hawk_aです。 StoryBoardを使 …

[XCode]iPhoneに入っていないフォント(カスタムフォント)を使えるようにする方法と注意点

iPhoneは結構いろんなフォントが使えますが、「オリジナルのフォントを使いたい …