Iphone 在编辑模式下启用UITableViewCell中的所有文本字段
我有一堆自定义的Iphone 在编辑模式下启用UITableViewCell中的所有文本字段,iphone,objective-c,ios5,uitableview,Iphone,Objective C,Ios5,Uitableview,我有一堆自定义的uitableviewcell,带有标签和文本框。我禁用了文本框,但我想这样,当用户点击编辑按钮时,它将使文本框可编辑。如何才能使UITableView中的所有UITextFields都处于启用状态 我有 - (void)setEditing:(BOOL)editing animated:(BOOL)animated { [super setEditing:editing animated:animated]; [self.navigationItem setHi
uitableviewcell
,带有标签和文本框。我禁用了文本框,但我想这样,当用户点击编辑按钮时,它将使文本框可编辑。如何才能使UITableView
中的所有UITextFields
都处于启用状态
我有
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[self.navigationItem setHidesBackButton:editing animated:YES];
if (editing) {
}
}
但无法在其中添加文本框启用,因为我没有访问所有文本字段的权限。我是否需要添加代码来抓取所有单元格并循环它们并启用文本字段?我将通过在
设置编辑:动画:
方法中的UITableViewDelegate
上设置一个编辑BOOL
来完成此操作,并在值更改时更新可见单元格
NSArray *visibleCells = [myTable visibleCells];
for (MyTableViewCell *cell in visibleCells)
cell.textField.enabled = isEditing;
然后,再次使用您的UITableViewDelegate
,更新新单元格在tableView:willDisplayCell:forRowAtIndexPath:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
cell.textField.enabled = isEditing;
}
编辑UITableViewCell
的子类,并在子类的viewDidLoad
或init
方法中注册编辑通知的实例:
[[NSNotificationCenter defaultCenter]添加观察者:自选择器:@selector(disableTextBox)名称:@“EditingIsEnabled”对象:nil]
并实现一个名为disableTextBox
的方法,该方法禁用该单元格的文本框
然后,在setEditing:animated
方法中,在要开始编辑时发布通知:
[[NSNotificationCenter defaultCenter]postNotificationName:@“EditingIsEnabled”对象:self]
覆盖UITableViewCell
中的方法dealloc
,并删除自己作为观察者的身份,否则您将崩溃:
[[NSNotificationCenter defaultCenter]移除观察者:self]
如果您没有使用ARC,请确保调用[super dealoc]
。如果您使用的是ARC,请不要调用super
当您想禁用所有单元格时,也可以执行相同的操作,只需发布一个具有不同名称的通知,如EditingIsDisabled
如果您需要我进一步充实代码,请告诉我
编辑:在这种情况下,我更喜欢DBD的方法。我认为您必须迭代单元格并启用所需的文本字段。