我正在创建一个带有 UITextfield 的自定义 UITableViewCell,我想知道如何从 UITextField 委托(delegate) didend 访问自定义 UItableViewCell?
我正在尝试这个
- (void)textFieldDidEndEditing:(UITextField *)textField {
CustomFinishingCell *updateCell = (CustomFinishingCell *)textField.superview;
但这并没有返回 UITableViewCell,我认为它返回的是 UItableScrollView 或类似的东西。
最佳答案
textField
的 super View 实际上是单元格的 contentView
。您可能可以通过以下方式获取单元格:
CustomFinishingCell *updateCell = (CustomFinishingCell *)textField.superview.superview;
虽然这有点笨拙。
我也不建议使用标签,因为它更笨重。
我会做的是创建一个 UITextField
的子类,为您的 CustomFinishingCell
设置一个属性,并在创建单元格时设置它(您添加 UITextField 的地方
)。这将确保一切正常工作,即使用户重新使用单元格、添加/删除单元格等,并且可以很好地重复使用单元格。
更新:
在很多情况下,实际使用@TimReddy 的答案并将 UITextField
的 delegate
设置为 CustomFinishingCell
会更好并将 - (void)textFieldDidEndEditing:(UITextField *)textField
等代码移动到该子类。这将使您不必为 UITextField
创建另一个子类。
关于ios - 如何在 Objective C 中访问父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22123540/