更改安全UITextField的行为

时间:2013-11-12 10:35:19

标签: ios uitextfield

我需要一个安全的UITextField,但默认情况下它会在转到*之前显示最后一个字符约1秒。有没有办法禁用它,并在键入时立即查看*而不是字符?

2 个答案:

答案 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;
}