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;
}
我正在尝试创建一个用于输入信用卡号的文本字段,如下所示:
••••••••••••••••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;
}