diff --git a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm index d980ca7386..27402df04b 100644 --- a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm +++ b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm @@ -633,6 +633,14 @@ -(void)fetchDatePickerValue:(NSString *)value } } +- (void)datePickerValueDidChange:(NSString *)value +{ + self.text = value; + if (_inputEvent) { + [self fireEvent:@"input" params:@{@"value":[self text]} domChanges:@{@"attrs":@{@"value":[self text]}}]; + } +} + #pragma mark UITextFieldDelegate - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ diff --git a/ios/sdk/WeexSDK/Sources/Manager/WXDatePickerManager.h b/ios/sdk/WeexSDK/Sources/Manager/WXDatePickerManager.h index 556d3668c3..482747b14e 100644 --- a/ios/sdk/WeexSDK/Sources/Manager/WXDatePickerManager.h +++ b/ios/sdk/WeexSDK/Sources/Manager/WXDatePickerManager.h @@ -22,6 +22,7 @@ @protocol WXDatePickerManagerDelegate @optional - (void)fetchDatePickerValue:(NSString *)value; +- (void)datePickerValueDidChange:(NSString *)value; @end @interface WXDatePickerManager : NSObject diff --git a/ios/sdk/WeexSDK/Sources/Manager/WXDatePickerManager.m b/ios/sdk/WeexSDK/Sources/Manager/WXDatePickerManager.m index 0636fa4abe..148d6d8e81 100644 --- a/ios/sdk/WeexSDK/Sources/Manager/WXDatePickerManager.m +++ b/ios/sdk/WeexSDK/Sources/Manager/WXDatePickerManager.m @@ -71,6 +71,7 @@ - (instancetype)init CGRect pickerFrame = CGRectMake(0, 44, [UIScreen mainScreen].bounds.size.width, WXPickerHeight-44); datePicker.backgroundColor = [UIColor whiteColor]; datePicker.frame = pickerFrame; + [datePicker addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged]; UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 44)]; [toolBar setBackgroundColor:[UIColor whiteColor]]; UIBarButtonItem* noSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; @@ -219,6 +220,19 @@ -(void)done:(id)sender } +- (void)valueChanged:(id)sender +{ + if ([self.delegate respondsToSelector:@selector(datePickerValueDidChange:)]) { + NSString *value = @""; + if ([_type isEqualToString:@"time"]) { + value = [WXUtility timeToString:self.datePicker.date]; + } else if ([_type isEqualToString:@"date"]) { + value = [WXUtility dateToString:self.datePicker.date]; + } + [self.delegate datePickerValueDidChange:value]; + }; +} + #pragma mark - UIGestureRecognizerDelegate - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if (self.datePickerView && [touch.view isDescendantOfView:self.datePickerView]) {