【发布时间】:2016-03-05 02:18:28
【问题描述】:
关于TextFields委托方法textfieldshouldreturn不被调用有很多类似的问题,但都通过设置委托解决了。我已经设置了委托,并且在另一个我几乎逐行复制的项目中也有一个非常好的示例。打印声明确认没有拨打电话。更奇怪的是,我设置了一个随机变量来测试我是否访问了正确的对象,但是当我尝试访问该变量时,它因 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 但这也没关系。我将“randomVariable”添加到 TitleTextField 以确保我访问的是正确的对象,但是当我在 viewDidLoad 中使用 titleTextField.randomVariable = true 时,我遇到了 BAD_ACCESS 崩溃。
我还仔细检查了故事板连接。我什至删除了连接和 IBoutlet 并重新设置了它们,没有区别。清理项目等。
【问题讨论】:
-
你尝试重启 Xcode 了吗?有时它会出现奇怪的问题,重新启动似乎可以解决这些问题。
标签: swift textfield exc-bad-access