我有一个 UITableViewController 原型单元格包含 UITextFields。为了配置这些自定义单元格,我创建了一个 UITableViewCell 子类。我已通过 outlet 将 textField 连接到单元格子类(nonatomic, weak)
。
在这个子类上,我创建了一个协议,UITableViewController 是它的委托,这样每当这些文本字段发生变化时,TableViewController 就会知道它。基本上我希望这可以保存 NSUserDefaults 上的值
此外,为了从这些文本字段中动态获取值,我可以这样做:
((TextFieldCell*)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]]).textField.text
大多数时候它工作正常。但是,当 textField 因为滚动而位于视图之外时,我从 textField.text 获得的值是(null)。一旦它再次出现在视野中,一切都会恢复正常。
我试图将出口从弱改为强,但无济于事。
我想我可以在类上定义一些私有的 NSString,并在调用委托协议时填写它们。问题是我想让我的代码尽可能通用,尽可能降低对私有变量的需求,主要是为了简化单元生成代码。
当它们在视图之外时,还有其他方法可以获取文本字段的值吗?
提前致谢!