DateTextField.m 2.81 KB
Newer Older
Sandy's avatar
Sandy committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
//
//  DateTextField.m
//  RealEstateManagement
//
//  Created by Javen on 2016/11/8.
//  Copyright © 2016年 上海勾芒信息科技. All rights reserved.
//

#import "DateTextField.h"

@interface DateTextField () <UITextFieldDelegate>

@end

@implementation DateTextField
- (void)awakeFromNib
{
  [super awakeFromNib];
  UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, kWidth, 216)];
  self.inputView = datePicker;
  NSDate *date = [NSDate date];
  self.delegate = self;
  datePicker.date = date;
  datePicker.maximumDate = date;
  [datePicker addTarget:self action:@selector(actionPickerDidChanged:) forControlEvents:UIControlEventValueChanged];
}

- (void)setType:(DateTextFieldType)type {
    _type = type;
    UIDatePicker *datePicker = (UIDatePicker *)self.inputView;
    NSDate *date = datePicker.date;
    switch (self.type) {
        case DateTextFieldYearMonth: {
            self.text = [date yearMonthString];
            datePicker.datePickerMode = UIDatePickerModeDate;
            break;
        }
        case DateTextFieldYearMonthDay: {
            self.text = [date yearMonthDayString];
            datePicker.datePickerMode = UIDatePickerModeDate;
            break;
        }
        case DateTextFieldTime: {
            datePicker.datePickerMode = UIDatePickerModeTime;
            self.text = [date httpParameterString];
            break;
        }
    }
}

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    UIDatePicker *datePicker = (UIDatePicker *)textField.inputView;
    NSDate *date = datePicker.date;
    switch (self.type) {
        case DateTextFieldYearMonth: {
            textField.text = [date yearMonthString];
            break;
        }
        case DateTextFieldYearMonthDay: {
            textField.text = [date yearMonthDayString];
            break;
        }
        case DateTextFieldTime: {
            textField.text = [date httpParameterString];
            break;
        }
    }
    if (self.blockEndEdit) {
        self.blockEndEdit();
    }
}

- (void)actionPickerDidChanged:(UIDatePicker *)datePicker
{
    NSDate *date = datePicker.date;
    switch (self.type) {
        case DateTextFieldYearMonth: {
            self.text = [date yearMonthString];
            break;
        }
        case DateTextFieldYearMonthDay: {
            self.text = [date yearMonthDayString];
            break;
        }
        case DateTextFieldTime: {
            self.text = [date httpParameterString];
            break;
        }
    }
}

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(paste:))//禁止粘贴
        return NO;
    if (action == @selector(select:))// 禁止选择
        return NO;
    if (action == @selector(selectAll:))// 禁止全选
        return NO;
    return [super canPerformAction:action withSender:sender];
}
@end