我需要一个安全的UITextField,但默认情况下它会在转到*之前显示最后一个字符约1秒。有没有办法禁用它,并在键入时立即查看*而不是字符?
答案 0 :(得分:1)
是的,你可以执行此操作。为此,你需要在文本字段中添加空格,开始编辑。当用户结束编辑时删除该空格。
有关详细信息,请参阅下面的代码段。
- (void)textFieldDidBeginEditing:(UITextField *)textField {
textField.text = @" ";
UITextPosition *beginning = [textField beginningOfDocument];
[textField setSelectedTextRange:[textField textRangeFromPosition:beginning toPosition:beginning]];
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
if ([textField.text length] > 0)
textField.text = [textField.text substringToIndex:[textField.text length] - 1];;
}
如果您对此有疑问,请告诉我。
感谢。
答案 1 :(得分:1)
我使用解决方法解决了它,找不到像设置标志这样的简单解决方案:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (textField == self.mySecureTextField) {
NSString *currentText = textField.text;
NSString *newText = [currentText stringByReplacingCharactersInRange:range withString:string];
textField.text = newText;
return NO;
}
return YES;
}