【发布时间】:2019-08-01 03:05:58
【问题描述】:
我想检查用户何时开始编辑文本字段。关于如何做到这一点here 有一个非常明确的答案。
但是,在我的情况下,我的 textField 位于设置为自己的类的 UITableview 中。我已经尝试了很多不同的方法来让它工作,但我不断收到崩溃“libc++abi.dylib:以 NSException 类型的未捕获异常终止”我在 textFieldDidChange 函数中设置了一个中断,它永远不会被调用问题似乎在于我如何从目标调用该函数。
class TextFieldCell: UITableViewCell {
lazy var textField: UITextField = {
let tf = UITextField()
tf.translatesAutoresizingMaskIntoConstraints = false
tf.textAlignment = .center
tf.textColor = .black
tf.font = UIFont.systemFont(ofSize: 17)
tf.clearButtonMode = .whileEditing
return tf
}()
// For simplicity, the rest of the Cell setup not shown.
// Adds target in AirInput VC to fire method when editing happens
textField.addTarget(self, action: #selector(AirInputViewController.textFieldDidChange(_:)), for: UIControl.Event.editingChanged)
}
class AirInputViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate {
@objc func textFieldDidChange(_ textField: UITextField) {
}
}
我还为目标尝试了以下操作,但它也崩溃了。
textField.addTarget(AirInputViewController.self, action: #selector(AirInputViewController.textFieldDidChange(_:)), for: UIControl.Event.editingChanged)
感觉好像我错过了一些简单的东西,但我不知道那个简单的修复是什么。或者也许我应该在 AirInputViewContoller 中添加目标?如果是这样,我将如何访问文本字段所在的 UITableViewCells?谢谢!
【问题讨论】:
-
通常在“以 NSException 类型的未捕获异常终止”之前有一个指针指向导致异常的原因。你介意发布整个崩溃吗?
-
你是这个意思吗? “libc++abi.dylib:以 NSException 类型的未捕获异常终止”
-
不,通常输出会更长。我有预感会发生什么。发布了答案。如果不是这样,我可以删除它。
标签: ios swift uitableview uitextfield