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

时间:2015-04-21 14:45:12

标签: ios cocoa-touch uitextfield

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

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

基本上,我需要支持文本字段中的安全文本输入,但是只能在给定的字符串长度之前。在那之后,文本应该正常显示。

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用UITextFieldDelegate并实施

来完成此操作

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

e.g。

@interface

@property NSString * theActualText;
@property NSInteger numberOfCharactersToObscure;

@implementation

- (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;
}