PaR*_*Nos 5 cocoa-touch objective-c uitableview ios
在我的应用程序中,我有一些views需要就地editable.我已经tableviewcells设置了包含一个UITextField已启用的设置,文本可以更改,这很好,它的工作原理.
我的问题是跟踪这些问题的最佳方法是什么?我是不是该 :
textfield.如果是的话
cell如果只实例化一次,如何确保每个字段都有正确的字段?textfield当加入的cell创建,只是在配置时,将其值设置cell.如果是的话
cell退出view然后退出,其值将重置为其原始值而不是编辑值.您通常倾向于在这种情况下使用什么方法?特别是如果cells你正在处理大量的事情.
lna*_*ger 10
将所有文本字段的值存储在数据模型中的可变数组中.
在tableView:willDisplayCell:forRowAtIndexPath:设置文本字段的值时,使用基于索引路径的数组中的值.
当文本字段结束编辑时,立即将值存储回数组中.已经有了一个协议(所以不需要编写自己的协议),但是它比普通的要复杂一点,因为你没有传递indexPath并且需要找到与你的文本字段相关的那个:
- (void) textFieldDidEndEditing:(UITextField *)textField {
CGRect location = [self convertRect:textField.frame toView:self.tableView];
NSIndexPath *indexPath = [[self.tableView indexPathsForRowsInRect:location] objectAtIndex:0];
// Save the contents of the text field into your array:
[yourArray replaceObjectAtIndex:indexPath.row withObject:textField.text];
}
Run Code Online (Sandbox Code Playgroud)最好的方法是遵循 MVC 并实现您的模型,在您的情况下是文本字段值。您所做的是将这些值存储在数组中,并在 cellForIndexPath 方法中引用数组中的正确值。例如,表的第一行 (indexPath.row == 0) 将检索数组中的第一个元素。文本字段中的更改将记录在数组中相应的元素上。
| 归档时间: |
|
| 查看次数: |
7410 次 |
| 最近记录: |