应用程序在我设置TextField委托的行上崩溃:
listNameTextField = self
在viewDidLoad
方法
给出错误
'NSInvalidArgumentException', reason: '-[UIView setDelegate:]: unrecognized selector sent to instance
我已经尝试在listNameTextField
参考上制作strong
变量weak
,但它不会改变问题
import UIKit
class CreateListViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var listNameTextField: UITextField!
var listNameString: String = ""
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Create List"
listNameTextField.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func submitListName(_ sender: UIButton) {
if listNameString != "" {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "ListView")
self.present(controller, animated: true, completion: nil)
}
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
func textFieldDidEndEditing(_ textField: UITextField) {
if let text = listNameTextField.text {
listNameString = text
}
}
}
根据你的错误,你的listNameTextField
只是UIView
。
检查xib
/ storyboard
中的连接。
您无法将故事板中的UIView
类型更改为UITextField
,因为storyboard会在qmlxswpoi的xml中生成其他属性。
相反,你需要从故事板删除你原来的UITextField
并添加新的UIView
并建立新的连接。