2

編集モードでセルの内容を編集するためにUITextFieldが追加されたUITableViewCellのサブクラスがあります。カスタムセルの実装では、次のように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 に答える