有许多关于TextFields委托方法textfieldshouldreturn未被调用的类似问题,但都是通过设置委托来解决的。我已经设置了委托,并且在另一个项目中我已经完全复制了几乎一行的项目。打印语句确认没有进行呼叫。更让人好奇的是,我设置了一个随机变量来测试我是否访问了正确的对象,但是当我尝试访问该变量时,它会因BAD_ACCESS错误而崩溃。Swift TextField方法未调用,Delegate已设置,现在BAD_ACCESS错误
class TitleTextField: UITextField, UITextFieldDelegate {
var randomElement: Bool = true
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
print("text field return pressed")
return true
}
}
和这里就是我使用它
class EditViewController: UIViewController {
@IBOutlet weak var titleTextField: TitleTextField!
func configureView() {
navigationItem.title = "Edit Goal"
}
override func viewDidLoad() {
super.viewDidLoad()
print("editor loaded")
configureView()
titleTextField.text = "placeholder"
titleTextField.delegate = titleTextField
titleTextField.delegate = titleTextField.self
if let textField = titleTextField {
textField.delegate = titleTextField
}
print("textfield delegate = \(titleTextField?.delegate)")
}
如果列出了一些不同的方法,我尝试设置委托。我什至将viewController符合UITextFieldDelegate并将代理设置为self,但这也没有关系。我向TitleTextField添加了“randomVariable”以确保我访问正确的对象,但是当我在viewDidLoad中使用titleTextField.randomVariable = true时,我得到了一个BAD_ACCESS崩溃。
我也双重检查了故事板连接。我甚至删除了连接和IBoutlet并重新编号,没有任何区别。清理后的项目等
您是否尝试重新启动Xcode?有时它有奇怪的问题,重启似乎可以解决它们。 – Alexander