1.自定义UITableViewCell类
2.声明属性:
//声明一个块
//返回值 块名称 块参数
@property (nonatomic,copy) void(^onTextEntered)(NSString *enteredText);
- (IBAction)textEditingDidEnd:(id)sender;
3.text结束编辑事件的方法体
//当textfield 停止编辑
- (IBAction)textEditingDidEnd:(id)sender {
//停止编辑的时候,将text的值传入块中
self.onTextEntered(self.inputText.text);
}
4.在 cellForRowAtIndexPath 方法中具体声明cell的块方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"LabelTextFieldCell";
LabelTextFieldCell *cell = (LabelTextFieldCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
//根据nib,实例化cell
NSArray *nib = [[UINib nibWithNibName:@"LabelTextFieldCell" bundle:nil] instantiateWithOwner:self options:nil];
cell= (LabelTextFieldCell *)[nib objectAtIndex:0];
}
// Configure the cell...
//设置text的值
cell.inputText.text = [self.data objectAtIndex:indexPath.row];
//弱类型才可以再块中进行改变
__weak NSMutableArray *dataWeak = self.data;
//具体声明块方法,将text修改后的值,传递回Data中
cell.onTextEntered = ^(NSString * enteredString){
[dataWeak setObject:enteredString atIndexedSubscript:indexPath.row];
};
return cell;
}
5.Demo下载地址:InlineEdition_Demo