RAEditScanInputCell.m 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. //
  2. // RAEditScanInputCell.m
  3. // Apex And Drivers
  4. //
  5. // Created by Jack on 2018/6/4.
  6. // Copyright © 2018年 USAI. All rights reserved.
  7. //
  8. #import "RAEditScanInputCell.h"
  9. #import "RAEditInputModel.h"
  10. @interface RAEditScanInputCell () <UITextFieldDelegate>
  11. @property (strong, nonatomic) IBOutlet UILabel *titlelabel;
  12. @property (strong, nonatomic) IBOutlet UITextField *inputTextField;
  13. @end
  14. @implementation RAEditScanInputCell
  15. - (void)awakeFromNib {
  16. [super awakeFromNib];
  17. // Initialization code
  18. self.model = nil;
  19. }
  20. - (void)prepareForReuse {
  21. [super prepareForReuse];
  22. self.model = nil;
  23. self.delegate = nil;
  24. }
  25. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  26. [super setSelected:selected animated:animated];
  27. // Configure the view for the selected state
  28. }
  29. - (void)setModel:(RAEditInputModel *)model {
  30. _model = model;
  31. self.titlelabel.text = _model.title;
  32. self.inputTextField.text = _model.value;
  33. if (_model.scannable) {
  34. self.inputTextField.rightViewMode = UITextFieldViewModeAlways;
  35. UIButton *scanBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  36. scanBtn.bounds = CGRectMake(0, 0, 30, 30);
  37. [scanBtn setImage:[UIImage imageNamed:@"Barcode_n"] forState:UIControlStateNormal];
  38. [scanBtn setImage:[UIImage imageNamed:@"Barcode_h"] forState:UIControlStateHighlighted];
  39. [scanBtn addTarget:self action:@selector(scanBtnClick:) forControlEvents:UIControlEventTouchUpInside];
  40. self.inputTextField.rightView = scanBtn;
  41. } else {
  42. self.inputTextField.rightViewMode = UITextFieldViewModeNever;
  43. self.inputTextField.rightView = nil;
  44. }
  45. }
  46. - (void)scanBtnClick:(UIButton *)sender {
  47. NSLog(@"scan click");
  48. }
  49. #pragma mark - TextField Delegate
  50. - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
  51. if (self.delegate && [self.delegate respondsToSelector:@selector(beginEditInputCell:)]) {
  52. [self.delegate beginEditInputCell:self];
  53. }
  54. return YES;
  55. }
  56. - (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
  57. if (self.delegate && [self.delegate respondsToSelector:@selector(endEditInputCell:)]) {
  58. [self.delegate endEditInputCell:self];
  59. }
  60. return YES;
  61. }
  62. @end