Skip to content
This repository has been archived by the owner on Jun 3, 2021. It is now read-only.

Commit

Permalink
[WEEX-492][iOS] Make stoppropagation parameter compatible with Rax fr…
Browse files Browse the repository at this point in the history
…amework.
  • Loading branch information
doumafang committed Jul 5, 2018
1 parent c354d2b commit 8e0de43
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 8 deletions.
2 changes: 1 addition & 1 deletion ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ typedef id (^WXDataBindingBlock)(NSDictionary *data, BOOL *needUpdate);
BOOL _listenVerticalPan;

BOOL _listenStopPropagation;

NSString *_stopPropagationName;
WXTouchGestureRecognizer* _touchGesture;

/**
Expand Down
19 changes: 18 additions & 1 deletion ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm
Original file line number Diff line number Diff line change
Expand Up @@ -581,7 +581,17 @@ - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRang
((WXTextInputView*)textField).deleteWords = FALSE;
((WXTextInputView*)textField).editWords = string;
}


if ([_inputType isEqualToString:@"tel"] || [_inputType isEqualToString:@"number"] ) {
if (![self isPureInt:string]) {
if ([string isEqualToString:@"+"]||[string isEqualToString:@"."]||[string isEqualToString:@"*"]||[string isEqualToString:@"#"]||(string.length == 0 && range.length == 1))
{
return YES;
}
return NO;
}
}

if (_maxLength) {
NSUInteger oldLength = [textField.text length];
NSUInteger replacementLength = [string length];
Expand Down Expand Up @@ -765,6 +775,13 @@ - (BOOL)isDateType
return NO;
}

- (BOOL)isPureInt:(NSString*)textString
{
int val;
NSScanner* scan = [NSScanner scannerWithString:textString];
return[scan scanInt:&val] && [scan isAtEnd];
}

- (void)setPlaceholderAttributedString
{
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:_placeholderString];
Expand Down
22 changes: 16 additions & 6 deletions ios/sdk/WeexSDK/Sources/Events/WXComponent+Events.m
Original file line number Diff line number Diff line change
Expand Up @@ -180,17 +180,26 @@ - (void)removeEvent:(NSString *)removeEventName

#pragma mark Add & Remove Event


#define WX_ADD_EVENT(eventName, addSelector) \
if ([addEventName isEqualToString:@#eventName]) {\
[self addSelector];\
}

#define WX_ADD_EVENTS(eventName1,eventName2, addSelector) \
if ([addEventName isEqualToString:@#eventName1]||[addEventName isEqualToString:@#eventName2]) {\
[self addSelector:addEventName];\
}

#define WX_REMOVE_EVENT(eventName, removeSelector) \
if ([removeEventName isEqualToString:@#eventName]) {\
[self removeSelector];\
}

#define WX_REMOVE_EVENTS(eventName1,eventName2, removeSelector) \
if ([removeEventName isEqualToString:@#eventName1]||[removeEventName isEqualToString:@#eventName2]) {\
[self removeSelector];\
}

- (void)_initEvents:(NSArray *)events
{
for (NSString *addEventName in events) {
Expand Down Expand Up @@ -232,7 +241,7 @@ - (void)_addEventOnMainThread:(NSString *)addEventName
WX_ADD_EVENT(touchcancel, addTouchCancelEvent)
WX_ADD_EVENT(accessibilityMagicTap, addAccessibilityMagicTapEvent)

WX_ADD_EVENT(stopPropagation, addStopPropagationEvent)
WX_ADD_EVENTS(stopPropagation, stoppropagation, addStopPropagationEvent)

if(_isListenPseudoTouch) {
self.touchGesture.listenPseudoTouch = YES;
Expand Down Expand Up @@ -263,8 +272,8 @@ - (void)_removeEventOnMainThread:(NSString *)removeEventName
WX_REMOVE_EVENT(touchcancel, removeTouchCancelEvent)
WX_REMOVE_EVENT(accessibilityMagicTap, removeAccessibilityMagicTapEvent)

WX_REMOVE_EVENT(stopPropagation, removeStopPropagationEvent)
WX_REMOVE_EVENTS(stoppropagation,stopPropagation, removeStopPropagationEvent)

if(_isListenPseudoTouch) {
self.touchGesture.listenPseudoTouch = NO;
}
Expand Down Expand Up @@ -337,9 +346,10 @@ - (void)removeAccessibilityMagicTapEvent

#pragma mark - StopPropagation

- (void)addStopPropagationEvent
- (void)addStopPropagationEvent:(NSString *)stopPropagationName
{
_listenStopPropagation = YES;
_stopPropagationName = stopPropagationName;
self.touchGesture.listenTouchMove = YES;
}

Expand Down Expand Up @@ -778,7 +788,7 @@ - (BOOL)gestureShouldStopPropagation:(UIGestureRecognizer *)gestureRecognizer sh
else{
touchState = @"end";
}
BOOL stopPropagation = [[WXEventManager sharedManager]stopPropagation:self.weexInstance.instanceId ref:ref type:@"stopPropagation" params:@{@"changedTouches":resultTouch ? @[resultTouch] : @[],@"action":touchState}];
BOOL stopPropagation = [[WXEventManager sharedManager]stopPropagation:self.weexInstance.instanceId ref:ref type:_stopPropagationName params:@{@"changedTouches":resultTouch ? @[resultTouch] : @[],@"action":touchState}];
touch.wx_stopPropagation = stopPropagation ? @1 : @0;
}
}
Expand Down

0 comments on commit 8e0de43

Please sign in to comment.