Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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
Ios 在Tableview的编辑模式下禁用文本字段_Ios_Ipad_Uitableview_Uitextfield_Edit - Fatal编程技术网

Ios 在Tableview的编辑模式下禁用文本字段

Ios 在Tableview的编辑模式下禁用文本字段,ios,ipad,uitableview,uitextfield,edit,Ios,Ipad,Uitableview,Uitextfield,Edit,我正在开发一个应用程序,其中我有一个自定义单元格的UITableView。自定义单元格包含文本字段和按钮 要求: 当表格处于编辑模式时,应禁用文本字段/按钮(用户只能删除单元格,不能与内容交互。用户应退出编辑模式,然后与文本字段/按钮交互)。您也可以在iPad中使用“提醒”应用程序,在编辑模式下无法编辑内容 问题: 当表格处于编辑模式时,用户仍然可以单击textfield(显示键盘) 我所做的: 如果用户单击任何按钮,则如果表格处于编辑模式,则我不会在按钮的操作方法中执行任何操作,这对于按钮来说

我正在开发一个应用程序,其中我有一个自定义单元格的UITableView。自定义单元格包含文本字段和按钮

要求: 当表格处于编辑模式时,应禁用文本字段/按钮(用户只能删除单元格,不能与内容交互。用户应退出编辑模式,然后与文本字段/按钮交互)。您也可以在iPad中使用“提醒”应用程序,在编辑模式下无法编辑内容

问题: 当表格处于编辑模式时,用户仍然可以单击textfield(显示键盘)

我所做的: 如果用户单击任何按钮,则如果表格处于编辑模式,则我不会在按钮的操作方法中执行任何操作,这对于按钮来说是很好的

if ([tableView isEditing]) {
        return;
    }
问题是关于文本字段,在编辑模式下,我无法删除文本字段的交互。当表格进入编辑模式时,不会调用cellForRow,因此我可以禁用交互

是否有一种方法可以在进入编辑模式时禁用交互,并在退出编辑模式时启用


先谢谢你。任何提示都将不胜感激。如果您需要有关此问题的更多信息,请告知我

,您可以使用以下UITextField的委托方法进行相同操作:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
  if ([tableView isEditing]) {
        return NO;
    } else {
     return YES;
    }
}

您可以使用UITextField的以下委托方法进行相同操作:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
  if ([tableView isEditing]) {
        return NO;
    } else {
     return YES;
    }
}
1)首先退出任何编辑文本字段

-(void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath{


    for (UITableViewCell *cell in [tableView visibleCells]) {

        for (UIView *aView in cell.contentView.subviews) {

            if ([aView isKindOfClass:[UITextField class]]) {

                [aView resignFirstResponder];

                break;

            }
        }

    }
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {

    if ([tableView isEditing]) {

        return NO;

    } else {

        return YES;

    }
}
2)然后不允许编辑任何文本字段

-(void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath{


    for (UITableViewCell *cell in [tableView visibleCells]) {

        for (UIView *aView in cell.contentView.subviews) {

            if ([aView isKindOfClass:[UITextField class]]) {

                [aView resignFirstResponder];

                break;

            }
        }

    }
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {

    if ([tableView isEditing]) {

        return NO;

    } else {

        return YES;

    }
}
1)首先退出任何编辑文本字段

-(void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath{


    for (UITableViewCell *cell in [tableView visibleCells]) {

        for (UIView *aView in cell.contentView.subviews) {

            if ([aView isKindOfClass:[UITextField class]]) {

                [aView resignFirstResponder];

                break;

            }
        }

    }
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {

    if ([tableView isEditing]) {

        return NO;

    } else {

        return YES;

    }
}
2)然后不允许编辑任何文本字段

-(void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath{


    for (UITableViewCell *cell in [tableView visibleCells]) {

        for (UIView *aView in cell.contentView.subviews) {

            if ([aView isKindOfClass:[UITextField class]]) {

                [aView resignFirstResponder];

                break;

            }
        }

    }
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {

    if ([tableView isEditing]) {

        return NO;

    } else {

        return YES;

    }
}

使用以下代码禁用编辑表格视图中的文本字段

[yourTextField endEditing:YES];

使用以下代码禁用编辑表格视图中的文本字段

[yourTextField endEditing:YES];

cell.textField.userInteractionEnabled=!tableView.i编辑;cell.textField.userInteractionEnabled=!tableView.i编辑;