Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在编辑模式下启用UITableViewCell中的所有文本字段_Iphone_Objective C_Ios5_Uitableview - Fatal编程技术网

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的方法。

我认为您必须迭代单元格并启用所需的文本字段。