2

我有一个 UITableViewCell 的子类,其中添加了 UITextField 以在编辑模式下编辑单元格的内容。在我的自定义单元格实现中,我已经像这样覆盖了 setEditing:

-(void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    if ([self.textField isFirstResponder])
        [self.textField resignFirstResponder];
    NSLog(@"%@",self.textLabel.text);
    if (editing) {
        self.textLabel.hidden = YES;
        self.textField.hidden = NO;
    }else{
        self.textLabel.hidden = NO;
        self.textField.hidden = YES;
    }

    [super setEditing:editing animated:animated];
}

当我第一次调用 setEditing 时会发生什么,它们都进入了编辑模式。但是,如果我尝试修改单元格并且如果该单元格离开屏幕并且我点击“完成”按钮,则该单元格仍处于编辑模式。只有已经离开屏幕的单元格。如果当我点击“完成”按钮时它在屏幕上可见,它就可以工作。

这是一个更好地描述问题的视频:Dropbox 上的视频

4

2 回答 2

0

您可以通过实现以下内容在 UITableViewController 子类中解决此问题:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated{    
    [super setEditing:editing animated:animated];

    //since setEditing isn't called on cells that are offscreen do this to ensure the keyboard is dismissed.
    [self.view endEditing:editing];
}
于 2013-07-23T07:33:11.303 回答
-1

当文本字段离开屏幕时,您可以尝试关闭键盘

于 2012-11-25T10:38:58.060 回答