TextFieldShouldReturn搞乱了一个选择器

时间:2019-02-25 13:52:55

标签: ios swift uitextfield

我有一个名为UITextField的{​​{1}}和一个名为titleTextField的{​​{1}} 我已经在UIBarButtonItem

中设置了save

现在,当我有以下代码并点击titleTextField .delegate = self键时,键盘被关闭了,但是当我尝试点击viewDidload()按钮时,绝对没有任何反应。我在按钮上放了一个断点,没有被调用。

我在Return上设置了一个断点,并且正在按预期方式调用它。如果我注释掉save代码,则该按钮正常工作。我不确定到底发生了什么。

textFieldShouldReturn

1 个答案:

答案 0 :(得分:2)

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

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()
}

它将完全正常工作。