我有一个带有文字“密码”的密码字段,当用户点击时,它会被清除。此外,我想将此文本字段的类型设置为安全,但这不起作用。
- (void)textFieldDidBeginEditing:(UITextField *)textField{
if ([textField.text isEqualToString:@"Password"] || [textField.text isEqualToString:@"Email"])
{
textField.text = @"";
textField.secureTextEntry = YES;
}
}
答案 0 :(得分:6)
我刚遇到同样的问题。我正在textFieldDidBeginEditing:
电话中更改房产。
将属性更改移至textFieldShouldBeginEditing:
调用可解决此问题。我相信诀窍是在文本字段不是becomeFirstResponder
时更改它。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if ([textField isEqual:_passwordField]) {
textField.secureTextEntry = YES;
}
return YES;
}
答案 1 :(得分:2)
只需将文字放在占位符中,即可确保密码文本字段安全。你的问题将得到解决:)。
答案 2 :(得分:2)
- (void)textFieldDidBeginEditing:(UITextField *)textField{
if ([textField.text isEqualToString:@"Password"] || [textField.text isEqualToString:@"Email"])
{
textField.text = @"";
[textField resignFirstResponder];
textField.secureTextEntry = YES;
[textField becomeFirstResponder];
}
}
它可以解决您的问题,但它有一个很大的错误。狗屎UITextField。
答案 3 :(得分:1)
在界面构建器中设置属性,或者在初始化文本字段时从
中删除该行-(void)textFieldDidBeginEditing:(UITextField *)textField {
}
我认为你应该将占位符文本设置为电子邮件或密码,并预先从界面构建器中选择安全文本条目。就是这样......
答案 4 :(得分:1)
我意识到这有点旧,但是在iOS 6中,UITextField“text”现在默认为“Attributed”在Interface Builder中。将此切换为“Plain”,就像在iOS 5中一样,解决了这个问题。
答案 5 :(得分:0)
如果您的键盘存在,secureTextEntry
将无效。因为如果键盘显示,UITextInputTraits
协议不会更改textfield
。
您可以关闭键盘,它可以正常工作
[myTextField resignFirstResponder]