在Swift中切换UITextField以显示和隐藏

9
我想在从注册切换到登录时隐藏用户名文本字段,并在切换回来时再次显示它。 我正在使用UI进行编程,我想知道如何隐藏文本字段。 我是Swift的新手,我认为有两个地方可以插入代码来隐藏用户名文本字段。如果不是,请告诉我。谢谢!
我要隐藏的图像:Username Textfield Still Showing when login is toggled 这里是UISegmentedControl:
lazy var loginRegisterSegmentControl: UISegmentedControl = {
        let sc = UISegmentedControl(items: ["Login", "Register"])
        sc.translatesAutoresizingMaskIntoConstraints = false
        sc.tintColor = UIColor.white
        sc.selectedSegmentIndex = 1
        sc.addTarget(self, action: #selector(handleLoginRegisterChange), for: .valueChanged)
        return sc
    }()

在这里,高度锚点更改。
nameTextFieldHeightAnchor?.isActive = false
        nameTextFieldHeightAnchor = nameTextField.heightAnchor.constraint(equalTo: inputContainerView.heightAnchor, multiplier: loginRegisterSegmentControl.selectedSegmentIndex == 0 ? 0 : 1/3)
        nameTextFieldHeightAnchor?.isActive = true
2个回答

14

使用此功能来设置UITextField的隐藏或显示,具体取决于您的应用程序结构。

您可以通过以下方式将字段显示

myTextField.isHidden = false

并且可以通过以下方式使其隐藏

myTextField.isHidden = true


1

更新至Swift版本:

使用以下简单代码:

// UIButtonOutlet

@IBOutlet var confirmPassTextField: UITextField!
@IBOutlet var confirmPassButton: UIButton!

//IBAction 方法

@IBAction func actionOnConfirmButton(_ sender: Any) {
    if (confirmPassTextField.isSecureTextEntry == true){
        confirmPassTextField.isSecureTextEntry = false
        confirmPassButton.setImage(UIImage(named: "show_pass"), for: .normal)
    }else{
        confirmPassButton.setImage(UIImage(named: "hide_pass"), for: .normal)
        confirmPassTextField.isSecureTextEntry = true
    }
}

注意:“show_pass”和“hide_pass” - UIImage的名称。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接