iOS 带有部分安全文本输入类型的文本字段••••••••••••••••0000

iOS textfield with partial secure text entry of the kind ••••••••••••••••0000

我正在尝试创建一个用于输入信用卡号的文本字段,如下所示:

••••••••••••••••0000

基本上,我需要在文本字段中支持安全文本输入,但仅限于给定的字符串长度。在那之后,文字应该可以正常显示了。

我该怎么做?

谢谢。

您可以使用 UITextFieldDelegate 并实施

来完成此操作

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

例如

@界面

@property NSString * theActualText;
@property NSInteger numberOfCharactersToObscure;

@实施

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{

    self.theActualText = [self.theActualText stringByReplacingCharactersInRange:range withString:string];

    NSInteger obscureLength = self.theActualText.length > self.numberOfCharactersToObscure ? self.numberOfCharactersToObscure : self.theActualText.length;

    NSRange replaceRange = NSMakeRange(0, obsuceLength);

    NSMutableString * replacementString = [NSMutableString new];

    for (int i = 0; i < obscureLength; i++) {
        [replacementString appendString:@"•"];
    }

    textField.text = [self.theActualText stringByReplacingCharactersInRange:range withString:replacementString];

    return NO;
}