隠しテキスト フィールドを 1 つと、そのために 2 つの画像で 4 つの imageViews を取得しました。1 つは空白用、もう 1 つは iOS のデフォルトと同じ弾丸用です。
4 つの imageview のタグも設定します。
読み込み時にピンコードにフォーカスを設定
- (void)startPinCode
{
txtPinCodeLockDigits.text = @"";
for (int i = 1; i <= 4; i++) {
UIImageView *img = (UIImageView *)[self.view viewWithTag:i];
[img setImage:[UIImage imageNamed:@"Img_BG_PinCode.png"]];
}
[txtPinCodeLockDigits becomeFirstResponder];
}
次に、ユーザー入力に従ってイメージビューの画像を変更し、4文字のみを許可します
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *result = [textField.text stringByReplacingCharactersInRange:range withString:string];
textField.text = result;
for (int i = 1; i <= 4; i++) {
UIImageView *img = (UIImageView *)[self.view viewWithTag:i];
if (i <= [result length])
[img setImage:[UIImage imageNamed:@"Img_BG_PinCode_Filled.png"]];
else
[img setImage:[UIImage imageNamed:@"Img_BG_PinCode.png"]];
}
NSLog(@"Result :: %@", result);
if ([result length] == 4) {
[self performSelector:@selector(keyGenerationForApplication:) withObject:result afterDelay:0.2];
}
return NO;
}
生成された PIN コードの関数を呼び出し、iOS のデフォルトの PIN 設定と同じようにユーザーのデフォルトに保存します。
- (void)keyGenerationForApplication:(NSString *)pinCode
{
int appCode = [pinCode intValue];
[DefaultsValues setIntegerValueToUserDefaults:appCode ForKey:PIN_LOCK_PATTERN];
}
ここで、コードを再確認するためにStartPinCodeメソッドを再度呼び出すことができます。
うまくいけば、それはあなたを助けるでしょう.
ありがとう