我正在尝试创建一个文本字段,用于输入显示为的信用卡号:
••••••••••••••••0000
基本上,我需要支持文本字段中的安全文本输入,但是只能在给定的字符串长度之前。在那之后,文本应该正常显示。
我该怎么做?
感谢。
答案 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;
}