我设置了一个密码字段,在UIButton
之下切换secureTextEntry
到YES
/ NO
。
以下是我使用的代码。
- (void)viewDidLoad
{
self.navigationController.navigationBarHidden=YES;
[_ShowPasswordButtonOutlet setImage:[UIImage imageNamed:@"box.png"] forState:UIControlStateNormal];
_password.secureTextEntry=YES;
[super viewDidLoad];
}
- (IBAction)ShowPassword:(id)sender
{
if ([_ShowPasswordButtonOutlet.imageView.image isEqual:[UIImage imageNamed:@"box.png"]])
{
[_ShowPasswordButtonOutlet setImage:[UIImage imageNamed:@"box_tick.png"] forState:UIControlStateNormal];
_password.secureTextEntry=NO;
} else if ([_ShowPasswordButtonOutlet.imageView.image isEqual:[UIImage imageNamed:@"box_tick.png"]])
{
[_ShowPasswordButtonOutlet setImage:[UIImage imageNamed:@"box.png"] forState:UIControlStateNormal];
_password.secureTextEntry=YES;
}
}
以上代码在 iOS7 和 iOS7.1 中似乎正常工作。
但是在 iOS6.1 中,单击时按钮图像似乎发生了变化,但secureTextEntry
只能从YES
到NO
工作一次。之后,如果仅点击UIButton
,则图片会发生变化,secureTextEntry
无效。
没有显示任何警告或错误!
答案 0 :(得分:1)
在iOS6中将UITextField
值设置为secureTextEntry
之前,您应该先停用YES
。
- (IBAction)ShowPassword:(id)sender
{
if (_password.secureTextEntry)
{
[_ShowPasswordButtonOutlet setImage:[UIImage imageNamed:@"box_tick.png"] forState:UIControlStateNormal];
_password.secureTextEntry = NO;
}
else
{
[_ShowPasswordButtonOutlet setImage:[UIImage imageNamed:@"box.png"] forState:UIControlStateNormal];
_password.enabled = NO;
_password.secureTextEntry = YES;
_password.enabled = YES;
}
}