// // RAEditScanInputCell.m // Apex And Drivers // // Created by Jack on 2018/6/4. // Copyright © 2018年 USAI. All rights reserved. // #import "RAEditScanInputCell.h" #import "RAEditInputModel.h" @interface RAEditScanInputCell () @property (strong, nonatomic) IBOutlet UILabel *titlelabel; @property (nonatomic,strong) IBOutlet UILabel *startLabel; @property (strong, nonatomic) IBOutlet UITextField *inputTextField; @end @implementation RAEditScanInputCell - (void)awakeFromNib { [super awakeFromNib]; // Initialization code self.model = nil; } - (void)prepareForReuse { [super prepareForReuse]; self.model = nil; self.delegate = nil; } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } - (void)setModel:(RAEditInputModel *)model { if (_model) { _model.delegate = nil; } _model = model; _model.delegate = self; [self refresh]; } - (void)scanBtnClick:(UIButton *)sender { if (self.delegate && [self.delegate respondsToSelector:@selector(scanInputCell:clickScanButton:)]) { [self.delegate scanInputCell:self clickScanButton:sender]; } } #pragma mark - Edit Model Delegate - (void)refresh { self.titlelabel.text = _model.title; self.inputTextField.text = _model.value; if (_model.scannable) { self.inputTextField.rightViewMode = UITextFieldViewModeAlways; UIButton *scanBtn = [UIButton buttonWithType:UIButtonTypeCustom]; scanBtn.bounds = CGRectMake(0, 0, 30, 30); [scanBtn setImage:[UIImage imageNamed:@"btn_scanner"] forState:UIControlStateNormal]; // [scanBtn setImage:[UIImage imageNamed:@"Barcode_h"] forState:UIControlStateHighlighted]; [scanBtn addTarget:self action:@selector(scanBtnClick:) forControlEvents:UIControlEventTouchUpInside]; self.inputTextField.rightView = scanBtn; } else { self.inputTextField.rightViewMode = UITextFieldViewModeNever; self.inputTextField.rightView = nil; } self.startLabel.hidden = !_model.required; } - (void)unbind { _model = nil; [self refresh]; } #pragma mark - TextField Delegate - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { if (self.delegate && [self.delegate respondsToSelector:@selector(beginEditInputCell:)]) { [self.delegate beginEditInputCell:self]; } return YES; } - (BOOL)textFieldShouldEndEditing:(UITextField *)textField { if (self.delegate && [self.delegate respondsToSelector:@selector(endEditInputCell:)]) { [self.delegate endEditInputCell:self]; } return YES; } - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *newStr = [textField.text stringByReplacingCharactersInRange:range withString:string]; [self.model updateValue:newStr]; return YES; } @end