gpt4 book ai didi

iphone - 卡号前 12 位数字应安全输入,其余 4 位数字正常

转载 作者:行者123 更新时间:2023-12-03 19:31:55 25 4
gpt4 key购买 nike

卡号前 12 位数字应为安全输入,其余 4 位数字应为正常输入,例如我正在输入卡号 - 4111 1111 1111 1111。在文本字段中输入此文本时,前 12 位数字应为安全输入,后 4 位数字应为作为正常输入,即 1111。(最终卡号将类似于 XXXXXXXXXXXX1111)。

谁能解释一下我该怎么做。

最佳答案

一种选择是实现 UITextField 委托(delegate)方法 textField:shouldChangeCharactersInRange:replacementString:。在此方法中,您希望始终返回 NO。但首先您将更新文本字段的文本,使前 12 位数字显示 X。您将在另一个 ivar 中跟踪实际文本。

编辑:这应该有效:

- (NSString *)maskNumber:(NSString *)num {
static NSString *twelveX = @"XXXXXXXXXXXX";

if (num.length < twelveX.length) {
return [twelveX substringToIndex:num.length];
} else {
return [twelveX stringByAppendingString:[num substringFromIndex:twelveX.length]];
}
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// Determine where the cursor should be
UITextRange *selRange = textField.selectedTextRange;
NSInteger cursorPos = [textField offsetFromPosition:textField.beginningOfDocument toPosition:selRange.start] + string.length;

_cardNum = [_cardNum stringByReplacingCharactersInRange:range withString:string];

textField.text = [self maskNumber:_cardNum];

// Reset the cursor position
UITextPosition *startPos = [textField positionFromPosition:textField.beginningOfDocument offset:cursorPos];
selRange = [textField textRangeFromPosition:startPos toPosition:startPos];
textField.selectedTextRange = selRange;

return NO;
}

其中_cardNumNSString类型的ivar。这会跟踪实际的卡号。

关于iphone - 卡号前 12 位数字应安全输入,其余 4 位数字正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13244313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com