我有一个带有UITableViewCell
的自定义UITextField
,该自定义类中有变量。我没有使用情节提要,所以没有插座。我正在以编程方式进行此操作。
我正在textFieldDidEndEditing
中使用UIViewController
来获取用户提供的价值。
public func textFieldDidEndEditing(_ textField: UITextField)
{
print("textvalue=\(textField.text!)")
}
但是,如果轻按导航栏按钮,则不会调用textFieldDidEndEditing
。我通常知道我的UIViewController上是否有插座和文本字段变量,我可以使用resignFirstResponder
,这可能会导致调用textFieldDidEndEditing
,但是正如我所说的,我没有使用插座/情节提要。
我在UIViewController
的文本字段上没有此变量,因此我没有什么可调用resignFirstResponder
的。
我想我可以在自定义resignFirstResponder
中调用UITableViewCell
,但是我无权访问我的模型。
答案 0 :(得分:3)
可以通过使用tags
中的accessibility
和UITableViewDelegate
这样的标识符来标识您的文本字段,然后使用can use,
在
中创建单元格时设置delegate
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
cell.txtField.delegate = self
}
// then it will be called UITextFieldDelegate
public func textFieldDidEndEditing(_ textField: UITextField)
{
}
或者您可以按照subviews
的层次结构使用:
self.view.endEditing(true)