我想将uitextfield设置为总安全字段。但是,当用户键入一个字符时,它也会显示在屏幕上。我也想隐藏初始字符,当用户输入某些内容时(例如“A”),它只显示安全文本(。或*)。我该怎么办?
答案 0 :(得分:1)
以下是解决方案的提案。在更改第二个文本存储后,在取消隐藏文本时使用第二个文本存储,同时替换代码中的文本字段文本。收听textField:shouldChangeCharactersInRange:replacementString:
作为文本字段的委托,执行上述更改,用●
替换字符,并在委托方法中返回NO。
答案 1 :(得分:1)
这是实现您所描述的行为的最佳解决方案:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == self.pinTextField) {
NSString *currentText = textField.text;
NSString *newText = [currentText stringByReplacingCharactersInRange:range withString:string];
textField.text = newText;
return NO;
}
return YES;
}
不要忘记将代理设置为您的UITextField:
self.myTextField.delegate = self;
答案 2 :(得分:0)
如果您不介意使用点而不是星号,可以将SecureTextEntry属性设置为YES:
[yourUITextField setSecureTextEntry:YES];