【发布时间】:2014-03-13 16:06:46
【问题描述】:
我想将 uitextfield 设置为总安全字段。但是,当用户键入一个字符时,它也会显示在屏幕上。我还想隐藏初始字符,当用户输入某些内容(例如“A”)时,它只显示安全文本(。或 *)。我该怎么办?
【问题讨论】:
标签: ios objective-c ipad security uitextfield
我想将 uitextfield 设置为总安全字段。但是,当用户键入一个字符时,它也会显示在屏幕上。我还想隐藏初始字符,当用户输入某些内容(例如“A”)时,它只显示安全文本(。或 *)。我该怎么办?
【问题讨论】:
标签: ios objective-c ipad security uitextfield
这是一个解决方案的建议。在更改第二个文本存储后,对未隐藏的文本使用第二个文本存储,同时从代码中替换文本字段的文本。收听 textField:shouldChangeCharactersInRange:replacementString: 作为文本字段的委托,执行上述更改,将字符替换为 ● 并在委托方法中返回 NO。
【讨论】:
[alertView textFieldAtIndex:0].delegate = self;
这是实现您描述的行为的最佳解决方案:
- (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;
【讨论】:
如果您不介意看到点而不是星号,可以将 SecureTextEntry 属性设置为 YES:
[yourUITextField setSecureTextEntry:YES];
【讨论】: