UITextFieldで編集中に別のやつにフォーカスさせると色がヘンになる
画面上にUITextFieldが複数あって何文字入力したら次のfieldにジャンプする、みたいな事をしたい場合このようにした。
#import "ViewController.h" @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [_first addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; [_second addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; } - (void)textFieldDidChange:(id)sender { if (sender == _first) { [_second becomeFirstResponder]; } }
でもこれだとジャンプ後のfieldでヘンな色がついてしまう。
そこで、ジャンプ後のfieldで文字入力後にフォーカスを外してから付けるという風に書いてみた。
- (void)textFieldDidChange:(id)sender { if (sender == _first) { [_second becomeFirstResponder]; } else if (sender == _second) { [_second resignFirstResponder]; [_second becomeFirstResponder]; } }
これなら色がつかない。(ちゃんと分かっていない)