自定义购物车tableview,TableViewCell中有一 UITextField 用于编辑商品数量,当商品数量发生改变时,怎么同步修改数据源

解决方案 »

  1.   

    思路:
    在UITableViewCell 中添加UITextField 值改变时的通知
    [[NSNotificationCenter defaultCenter] addObserver:self
                                           selector:@selector(_yourTextFieldDidChangedMethod:)
                                               name:UITextFieldTextDidChangeNotification
                                             object:self.yourTextField];你可以在_yourTextFieldDidChangedMethod 中来处理你的逻辑,为了防止每次输入都会被调用的问题,你可以加一个处理
    -(void)_yourTextFieldDidChangedMethod:(NSNotification *) notif {
        UITextField *txtField=(UITextField *)[notif object];
        [NSObject cancelPreviousPerformRequestsWithTarget:self];
        [self performSelector:@selector(saveData:) withObject:txtField.text afterDelay:1];
    }在你的saveData 中处理你修改数据源的逻辑
    -(void)saveData:(id)text {
             ////////save text; 需要加一些为空的验证,数字类型的验证
    }
      

  2.   

    方法有多种的,UITextField 是事件驱动类型的控件。
      [textField addTarget:self action:@selector(onTextChanged:) forControlEvents:UIControlEventEditingChanged];
      

  3.   

    现在比较流行用block,搞个block出来回调一下也可以。