You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by cx...@apache.org on 2018/07/05 07:05:11 UTC

incubator-weex git commit: [WEEX-492][iOS] Make stoppropagation parameter compatible with Rax framework.

Repository: incubator-weex
Updated Branches:
  refs/heads/master 8ce1f1ee8 -> e019f3c8a


[WEEX-492][iOS] Make stoppropagation parameter compatible with Rax framework.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/e019f3c8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/e019f3c8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/e019f3c8

Branch: refs/heads/master
Commit: e019f3c8a1598944112226a25e24c305f314a4a5
Parents: 8ce1f1e
Author: doumafang <do...@gmail.com>
Authored: Wed Jul 4 16:08:23 2018 +0800
Committer: Adam Feng <cx...@gmail.com>
Committed: Thu Jul 5 15:05:05 2018 +0800

----------------------------------------------------------------------
 .../Sources/Component/WXComponent_internal.h    |  2 +-
 .../Sources/Component/WXEditComponent.mm        | 19 ++++++++++++++++-
 .../WeexSDK/Sources/Events/WXComponent+Events.m | 22 ++++++++++++++------
 3 files changed, 35 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e019f3c8/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h b/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
index d8e2f84..73f4d26 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
@@ -91,7 +91,7 @@ typedef id (^WXDataBindingBlock)(NSDictionary *data, BOOL *needUpdate);
     BOOL _listenVerticalPan;
     
     BOOL _listenStopPropagation;
-    
+    NSString *_stopPropagationName;
     WXTouchGestureRecognizer* _touchGesture;
     
     /**

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e019f3c8/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm
index b8b27c3..495f32b 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm
+++ b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.mm
@@ -581,7 +581,17 @@ WX_EXPORT_METHOD(@selector(setTextFormatter:))
         ((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];
@@ -765,6 +775,13 @@ WX_EXPORT_METHOD(@selector(setTextFormatter:))
     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];

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e019f3c8/ios/sdk/WeexSDK/Sources/Events/WXComponent+Events.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Events/WXComponent+Events.m b/ios/sdk/WeexSDK/Sources/Events/WXComponent+Events.m
index 7769e3a..84dcdd1 100644
--- a/ios/sdk/WeexSDK/Sources/Events/WXComponent+Events.m
+++ b/ios/sdk/WeexSDK/Sources/Events/WXComponent+Events.m
@@ -180,17 +180,26 @@
 
 #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) {
@@ -232,7 +241,7 @@ if ([removeEventName isEqualToString:@#eventName]) {\
     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;
@@ -263,8 +272,8 @@ if ([removeEventName isEqualToString:@#eventName]) {\
     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;
     }
@@ -337,9 +346,10 @@ if ([removeEventName isEqualToString:@#eventName]) {\
 
 #pragma mark - StopPropagation
 
-- (void)addStopPropagationEvent
+- (void)addStopPropagationEvent:(NSString *)stopPropagationName
 {
     _listenStopPropagation = YES;
+    _stopPropagationName = stopPropagationName;
     self.touchGesture.listenTouchMove = YES;
 }
 
@@ -778,7 +788,7 @@ if ([removeEventName isEqualToString:@#eventName]) {\
             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;
         }
     }