将 UITextfield 从不可编辑更改为可编辑 - Swift
Changing UITextfield from Non-Editable to Editable - Swift
我正在尝试让两个不可编辑的 UITextField
显示 name 和 age。我的导航栏中有一个 Edit UIBarButtonItem
,我希望能够在按下该按钮时触发 UITextField
以进行编辑。
在我的 Interface Builder 中,我没有为两个 UITextField 选中“启用用户交互”选项。我需要添加 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
}
}
您应该有一个布尔变量。将其设置为 '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
}
是的,你想做
nameText.userInteractionEnabled = true
ageText.userInteractionEnabled = true
并且可能
nameText.becomeFirstResponder()
第一次按下编辑按钮时。您可能还想将 "Edit" 按钮更改为 "Done" 按钮。当用户按下完成按钮时,您需要确保禁用用户交互并退出两个文本字段的第一响应者。
我正在尝试让两个不可编辑的 UITextField
显示 name 和 age。我的导航栏中有一个 Edit UIBarButtonItem
,我希望能够在按下该按钮时触发 UITextField
以进行编辑。
在我的 Interface Builder 中,我没有为两个 UITextField 选中“启用用户交互”选项。我需要添加 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
}
}
您应该有一个布尔变量。将其设置为 '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
}
是的,你想做
nameText.userInteractionEnabled = true
ageText.userInteractionEnabled = true
并且可能
nameText.becomeFirstResponder()
第一次按下编辑按钮时。您可能还想将 "Edit" 按钮更改为 "Done" 按钮。当用户按下完成按钮时,您需要确保禁用用户交互并退出两个文本字段的第一响应者。