iOS UITextFlied secureTextEntry无法在iOS 6.1上运行

时间:2014-05-21 12:05:14

标签: ios objective-c uibutton uitextfield ios6.1

我设置了一个密码字段,在UIButton之下切换secureTextEntryYES / 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只能从YESNO工作一次。之后,如果仅点击UIButton,则图片会发生变化,secureTextEntry 无效

没有显示任何警告或错误!

1 个答案:

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