當UITextField文本改變時, 根據內容更新數據, 通過寫監聽事件即可.
添加監聽:
[timesField addTarget:self
action:@selector(textFieldDidChange:)
forControlEvents:UIControlEventEditingChanged]; // 監聽事件
監聽事件:
// 監聽改變按鈕
- (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]; // 添加父視圖