| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- //
- // 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 () <UITextFieldDelegate,RAEditModelDelegate>
- @property (strong, nonatomic) IBOutlet UILabel *titlelabel;
- @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:@"Barcode_n"] 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;
- }
- }
- #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
|