我需要一个安全的 UITextField,但默认情况下它会显示最后一个字符约 1 秒,然后才变为 *. 有什么方法可以禁用它,并在输入后立即看到 * 而不是字符?
问问题
311 次
2 回答
1
是的,你可以这样做。为此,您需要在 Text 字段中添加空格并开始编辑。并且当用户结束编辑时删除该空白。
有关更多详细信息,请参见下面的代码片段。
- (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];;
}
如果您对此有疑问,请告诉我。
谢谢。
于 2013-11-12T11:20:26.347 回答
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;
}
于 2013-11-13T07:27:47.537 回答