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