当UITextField文本改变时, 依据内容更新数据, 通过写监听事件就可以.
加入监听:
[timesField addTarget:self
action:@selector(textFieldDidChange:)
forControlEvents:UIControlEventEditingChanged]; // 监听事件
监听事件:
// 监听改变button
- (void) textFieldDidChange:(UITextField*) sender {
// 文本内容
NSInteger times = [sender.text integerValue];
[_serviceNumList replaceObjectAtIndex:_servicePos withObject:[NSNumber numberWithInteger:times]];
// 总价
_totalPrice = (float)([_goodsList[_servicePos][@"Price"] floatValue]/100.0)*[[_serviceNumList objectAtIndex:_servicePos] integerValue];
[_totalPriceLabel setText:[NSString stringWithFormat:@"%0.1f", _totalPrice]];
}
其余UITextField属性:
// 输入框
UITextField *timesField = [[UITextField alloc] initWithFrame:CGRectMake(200*kViewRatio, 10*kViewRatio, 32*kViewRatio, 20*kViewRatio)]; // 位置大小
[timesField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型
NSAttributedString* timesText =[[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%ld", (long)[[_serviceNumList objectAtIndex:row] integerValue]]]; // 设置文字
[timesField setAttributedText:timesText];
[timesField setFont:[UIFont systemFontOfSize: 12*kViewRatio]]; // 文字大小
[timesField setTextAlignment:NSTextAlignmentCenter]; // 文字位置
[timesField setDelegate:self]; // 限制长度
[timesField addTarget:self
action:@selector(textFieldDidChange:)
forControlEvents:UIControlEventEditingChanged]; // 监听事件
[itemView addSubview:timesField]; // 加入父视图