gpt4 book ai didi

ios - TextFieldShouldReturn 弄乱了选择器

转载 作者:搜寻专家 更新时间:2023-11-01 06:54:08 26 4
gpt4 key购买 nike

我有一个名为 titleTextFieldUITextField 和一个名为 saveUIBarButtonItem我在 viewDidload()

中设置了 titleTextField .delegate = self

现在,当我有以下代码并点击 Return 键时,键盘被关闭,但是当我尝试点击 save 按钮时,绝对没有任何反应。我在按钮上放置了一个断点,它没有被调用。

我在 textFieldShouldReturn 上放置了一个断点,它按预期被调用。如果我注释掉 textFieldShouldReturn 代码,则该按钮可以正常工作。我不确定到底发生了什么。

extension CreateN : UITextFieldDelegate {

func handleTextFields() {
titleTextField.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)
}

@objc func textFieldDidChange() {
guard let title = titleTextField.text, !title.isEmpty
else {
saveButton.isEnabled = false
return
}
saveButton.isEnabled = true
}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(true)
}

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
titleTextField.resignFirstResponder()
return true
}
}

class CreateN: UIViewController {
let saveButton = UIBarButtonItem(title: "Save", style: .plain, target: self, action: #selector(saveTapped))

override func viewDidLoad() {
super.viewDidLoad()
titleTextField.delegate = self
setNavSaveButton()
handleTextFields()
}

func setNavSaveButton() {
saveButton.isEnabled = false
navigationItem.rightBarButtonItem = saveButton
}


@objc func saveTapped() {
print("Tap")
}
}

最佳答案

这是一个非常有趣的问题,要解决你需要更换

let saveButton = UIBarButtonItem(title: "Save", style: .plain, target: self, action: #selector(saveTapped))

var saveButton: UIBarButtonItem!

并在您的viewDidLoad 方法中添加

saveButton = UIBarButtonItem(title: "Save", style: .plain, target: self, action: #selector(saveTapped))

viewDidLoad 的最终代码将是:

override func viewDidLoad() {
super.viewDidLoad()

saveButton = UIBarButtonItem(title: "Save", style: .plain, target: self, action: #selector(saveTapped))
titleTextField.delegate = self
setNavSaveButton()
handleTextFields()
}

它会完全正常工作。

关于ios - TextFieldShouldReturn 弄乱了选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54867765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com