首页 > 代码库 > 在textFieldShouldEndEditing 方法中调用[self.tableView reloadData] 失效问题

在textFieldShouldEndEditing 方法中调用[self.tableView reloadData] 失效问题

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {

 

    NSString *value = http://www.mamicode.com/[NSString stringWithFormat:@"%.2f", [textField.text floatValue]];

    if ([value floatValue] >= 1) {

        textField.text = value;

        [self calculateServiceFees];

    } else {

        self.values[@"xx"] = @"$0.00";

        self.values[@"xxx"] = @"$0.00";

        textField.text = ([value floatValue]>0.0)?value:@"";

//        [self.tableView performSelector:@selector(reloadData)];

        [self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

//        [self.tableView reloadData];

    }

    return YES;

}

第一种解决方法:改成 performSelectorOnMainThread 调用刷新才成功。

第二种解决方法,就是放到 textFieldDidEndEditing 回调中处理

在textFieldShouldEndEditing 方法中调用[self.tableView reloadData] 失效问题