10
10
#import < React/RCTConvert.h>
11
11
#import < React/RCTUIManager.h>
12
12
#import < React/RCTEventDispatcher.h>
13
- #import < RCTText/ RCTSinglelineTextInputView.h>
14
- #import < RCTText/ RCTUITextField.h>
13
+ #import " RCTSinglelineTextInputView.h"
14
+ #import " RCTUITextField.h"
15
15
#import " RNTextInputMask.h"
16
16
17
17
@import InputMask;
@@ -43,17 +43,17 @@ - (dispatch_queue_t)methodQueue {
43
43
dispatch_async (dispatch_get_main_queue (), ^{
44
44
RCTSinglelineTextInputView *view = viewRegistry[reactNode];
45
45
RCTUITextField *textView = [view backedTextInputView ];
46
-
46
+
47
47
if (!masks) {
48
48
masks = [[NSMutableDictionary alloc ] init ];
49
49
}
50
-
50
+
51
51
NSString *key = [NSString stringWithFormat: @" %@ " , reactNode];
52
52
MaskedTextFieldDelegate* maskedDelegate = [[MaskedTextFieldDelegate alloc ] initWithFormat: mask];
53
53
masks[key] = maskedDelegate;
54
54
[masks[key] setListener: self ];
55
55
textView.delegate = masks[key];
56
-
56
+
57
57
[self updateTextField: maskedDelegate textView: textView];
58
58
});
59
59
}];
@@ -62,17 +62,17 @@ - (dispatch_queue_t)methodQueue {
62
62
- (void )textField : (RCTUITextField *)textField didFillMandatoryCharacters : (BOOL )complete didExtractValue : (NSString *)value
63
63
{
64
64
[self .bridge.eventDispatcher sendTextEventWithType: RCTTextEventTypeChange
65
- reactTag: [[textField reactSuperview ] reactTag ]
66
- text: textField.text
67
- key: nil
68
- eventCount: 1 ];
65
+ reactTag: [[textField reactSuperview ] reactTag ]
66
+ text: textField.attributedText.string
67
+ key: nil
68
+ eventCount: 1 ];
69
69
}
70
70
71
71
- (void )textFieldDidBeginEditing : (UITextField *)textField
72
72
{
73
73
[self .bridge.eventDispatcher sendTextEventWithType: RCTTextEventTypeFocus
74
74
reactTag: [[textField reactSuperview ] reactTag ]
75
- text: textField.text
75
+ text: textField.attributedText.string
76
76
key: nil
77
77
eventCount: 1 ];
78
78
}
@@ -81,24 +81,25 @@ - (void)textFieldDidEndEditing:(RCTUITextField *)textField
81
81
{
82
82
[self .bridge.eventDispatcher sendTextEventWithType: RCTTextEventTypeBlur
83
83
reactTag: [[textField reactSuperview ] reactTag ]
84
- text: textField.text
84
+ text: textField.attributedText.string
85
85
key: nil
86
86
eventCount: 1 ];
87
87
}
88
88
89
89
90
90
- (void )updateTextField : (MaskedTextFieldDelegate *)maskedDelegate textView : (RCTUITextField *)textView {
91
- if (textView.text .length > 0 ){
92
- NSString *originalString = textView.text ;
91
+ if (textView.attributedText . string .length > 0 ){
92
+ NSString *originalString = textView.attributedText . string ;
93
93
NSString *croppedText = [originalString substringToIndex: [originalString length ] -1 ];
94
-
95
- [textView setText: croppedText];
94
+
95
+ [textView setAttributedText: [[ NSAttributedString alloc ] initWithString: croppedText] ];
96
96
NSString *last = [originalString substringFromIndex: [originalString length ] - 1 ];
97
-
97
+
98
98
[maskedDelegate textField: (UITextField*)textView
99
- shouldChangeCharactersInRange: (NSRange ){[textView.text length ], 0 }
99
+ shouldChangeCharactersInRange: (NSRange ){[textView.attributedText.string length ], 0 }
100
100
replacementString: last];
101
101
}
102
102
}
103
103
104
104
@end
105
+
0 commit comments