2015-04-21 44 views
0

我正在尝试创建一个用于输入信用卡号的文本框:带有部分安全文本输入的iOS文本字段••••••••••••••••0000

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

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

我该怎么做?

谢谢。

+0

大多数地方使用完整的数据录入过程中与子弹的安全文本,然后换你离开文本字段后,上面指定的格式。 –

+0

选中此URL。可能是你会得到答案,因为你想 http://stackoverflow.com/questions/13244313/card-number-first-12-digits-should-be-secure-entry-and-remaining-4-digits -as-nor – Bhoomi

回答

1

您可以在此使用UITextFieldDelegate和实施

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

例如完成

@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; 
} 
+0

根本不工作 –