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;
}
}