我在自定义tableview单元格中有一个UITextField。在点击文本区域时,我会显示一个包含选择器视图的弹出窗口。我需要将选择器从pickerview设置为textfield的文本。我从textDidBeginEditing方法显示popover。如何将选择器从pickerView的didSelect方法传递到文本字段?
通过设计,整个事情都在TableViewController中,并实现了textfield和pickerview委托方法。
谢谢!
答案 0 :(得分:0)
您能提供更多信息吗?什么是tableView:cellForRowAtIndexPath:
的样子?我很好奇你正在编辑的对象在哪里。
我可以想到几种方法......
答案 1 :(得分:0)
只需将UIPickerView的委托设置为具有UITableView的viewcontroller即可。这样在UIPickerView的didSelect(在tableview的viewcontroller中实现)中,您只需使用pickerview的数据源来填充文本字段。
要从tableview获取自定义单元格,您只需执行以下操作:
CustomTableViewCell *thisCell = (CustomTableViewCell*)[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:section]];
然后在其中设置文本字段以包含您想要的任何文本:
thisCell.textField.text = @"text";
答案 2 :(得分:0)
我认为最好的方法是将UITextField的inputView
属性设置为UIPickerView。此视图将显示instead of the keyboard。
当UITableViewCell滚动超出表的边界时,它可能会被释放。因此,存储对调用其textFieldDidBeginEditing:
委托方法的UITextField的引用可能会导致EXC_BAD_ACCESS
异常。
解决方案是修改单元格的模型,它由视图控制器存储在数组中。初始化单元格时,应将文本字段的值设置为其模型对象中的相应值。最后,单元格应通过KVO观察其模型的变化,并相应地更新文本字段的值。