2015-04-21 82 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

根本不工作 –