我正在尝试使用两个不可编辑的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
}
}
答案 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
}