将UITextfield从不可编辑更改为可编辑 - Swift

时间:2015-08-17 21:27:24

标签: ios swift uitextfield

我正在尝试使用两个不可编辑的UITextField显示名称年龄。我的导航栏中有一个修改 UIBarButtonItem,我希望能够在按下该按钮时触发UITextField可编辑。

在我的Interface Builder中,我为两个UITextField取消选中了User Interaction Enabled选项。我需要添加ageText.UserInteractionEnabled = true吗?我在这里不知所措。

class UserProfileVC: UIViewController, 
UITextFieldDelegate, UINavigationControllerDelegate {

    @IBOutlet weak var infoBorder: UILabel!
    @IBOutlet weak var nameText: UITextField!
    @IBOutlet weak var ageText: UITextField!

    var textFields:[UITextField] = []

    @IBAction func editButton(sender: UIBarButtonItem) {
        nameText.becomeFirstResponder()
        ageText.becomeFirstResponder()
    }

    func textFieldShouldReturn(textField: UITextField) -> Bool {
        var currentTextField = textFields[0]

        if (currentTextField == textField) {
            currentTextField = textFields[1]
            currentTextField.becomeFirstResponder()
        } else {
            currentTextField.resignFirstResponder()
        }

        return true
    }
}

2 个答案:

答案 0 :(得分:4)

是的,你想做

<link href="css/bootstrap.css" type="text/css" rel="stylesheet"/>

可能

nameText.userInteractionEnabled = true
ageText.userInteractionEnabled = true

第一次按下编辑按钮时。您可能还想更改“编辑”按钮执行“完成”按钮。当用户按下完成按钮时,您需要确保禁用用户交互并为两个文本字段重新签署第一响应者。

答案 1 :(得分:3)

你应该有一个Bool变量。将其设置为“false”,然后在按下按钮时将其切换为“true”。根据其状态,只需运行不同的方法,基本上允许您编辑或不编辑。

这样的事情:

var editTextFieldToggle: Bool = false

@IBoutlet var textFieldToggle: UIButton!

@IBAction func textFieldToggle_Action(sender: UIButton){

    editTextFieldToggle = !editTextFieldToggle //switches button ON/OFF

    if editTextFieldToggle == true {
        textFieldActive()

    } else {
        textFieldDeactive()

    }
}

textFieldActive(){ 
    //Turn things ON
    nameText.enabled == true
    ageText.enabled == true
}

textFieldDeactive(){ //Add anything else
    //Turn things OFF
    nameText.enabled == false
    ageText.enabled == false
}