【发布时间】:2016-03-13 02:48:20
【问题描述】:
我有一个自定义视图,它显示从 UITextField 输入的单词列表。
为了方便快捷地输入,我打算在按下返回键后不隐藏键盘,而是重置文本字段并让用户继续输入更多单词。当用户完成输入单词时,我需要隐藏键盘,这意味着当用户在文本字段外点击时。
但是当在文本字段外点击时,以下实现给了我未捕获的异常。
我想知道与 resignFirstResponder() 相关的空字符串检查是否会导致此问题,但我需要确定该字段是否包含一些值。
我认为self.endEditing(true) 与我的情况无关,因为除非在文本字段外点击,否则无法知道用户何时想要结束编辑。
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = self
textField.returnKeyType = UIReturnKeyType.Done
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
textField.resignFirstResponder()
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
if let text = textField.text {
addTextToList()
}
textField.text = ""
return true
}
未捕获的异常是
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CookMate.CreateRecipeVC ingredientTextFieldDidChange:]: unrecognized selector sent to instance 0x7f80f1de3370'
【问题讨论】:
-
有什么异常?
-
对不起..我忘了添加。 *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[CookMate.CreateRecipeVC ingredientsTextFieldDidChange:]:无法识别的选择器发送到实例 0x7f80f1de3370”
-
错误中的
ingredientTextFieldDidChange:是什么? -
我没有实现那个事件。不过我之前确实玩过。