iPhone でオンにできるような PIN コード ダイアログを作成したいと思います。
まだ見ていない方のために説明すると、4 つのボックスと数字キーパッドで構成されています。数字を入力すると、最初のボックスにドットが表示されます。などなど。削除ボタンを押すと、最後のドットが削除されます。
これを 4 つの UITextFields として設定し、デリゲートでリッスンします。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
[self performSelector:@selector(pickNext:) withObject:textField afterDelay:0.0];
return YES;
}
pickNext: メソッドは、次のように次の UITextField に切り替えます。
- (void)pickNext:(UITextField*)textField
{
switch ([textField tag]) {
case 1:
[pin2 becomeFirstResponder];
break;
case 2:
[pin3 becomeFirstResponder];
break;
case 3:
[pin4 becomeFirstResponder];
break;
case 4:
[textField resignFirstResponder];
break;
default:
break;
}
}
これは実際には機能しますが、私にとっての問題は、UITextField が既に空の場合に削除キーが通知を生成しないことです。そのため、以前の UITextField に移動する方法がありません。
この問題を解決する方法について、より良い提案を持っている人はいますか。私は隠されたテキストフィールドを考えています...??