mirror of
https://github.com/status-im/react-native.git
synced 2025-01-15 12:05:06 +00:00
ac0ad3acdd
Summary: This diff completes adding support for the following UITextField properties: - returnKeyType: what the return key on the keyboard says - enablesReturnKeyAutomatically: the return key is disabled iff there is no text entered. This too could be implemented in React but it feels better in UIKit right now because it is handled synchronously. - secureTextEntry: obscure passwords - keyboardType: added all the keyboard types, they are useful in different scenarios There were varying degrees of support for these properties so it looks like this diff continues some unfinished work. I also updated the keyboardType enum to use native constants instead of strings like the other properties here. Added examples to the UIExplorer. Closes https://github.com/facebook/react-native/pull/265 Github Author: James Ide <ide@jameside.com> Test Plan: Imported from GitHub, without a `Test Plan:` line.
64 lines
2.1 KiB
Objective-C
64 lines
2.1 KiB
Objective-C
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
#import "RCTTextFieldManager.h"
|
|
|
|
#import "RCTBridge.h"
|
|
#import "RCTConvert.h"
|
|
#import "RCTShadowView.h"
|
|
#import "RCTSparseArray.h"
|
|
#import "RCTTextField.h"
|
|
|
|
@implementation RCTTextFieldManager
|
|
|
|
- (UIView *)view
|
|
{
|
|
return [[RCTTextField alloc] initWithEventDispatcher:self.bridge.eventDispatcher];
|
|
}
|
|
|
|
RCT_EXPORT_VIEW_PROPERTY(caretHidden, BOOL)
|
|
RCT_EXPORT_VIEW_PROPERTY(autoCorrect, BOOL)
|
|
RCT_EXPORT_VIEW_PROPERTY(enabled, BOOL)
|
|
RCT_EXPORT_VIEW_PROPERTY(placeholder, NSString)
|
|
RCT_EXPORT_VIEW_PROPERTY(text, NSString)
|
|
RCT_EXPORT_VIEW_PROPERTY(clearButtonMode, UITextFieldViewMode)
|
|
RCT_EXPORT_VIEW_PROPERTY(keyboardType, UIKeyboardType)
|
|
RCT_EXPORT_VIEW_PROPERTY(returnKeyType, UIReturnKeyType)
|
|
RCT_EXPORT_VIEW_PROPERTY(enablesReturnKeyAutomatically, BOOL)
|
|
RCT_EXPORT_VIEW_PROPERTY(secureTextEntry, BOOL)
|
|
RCT_REMAP_VIEW_PROPERTY(color, textColor, UIColor)
|
|
RCT_REMAP_VIEW_PROPERTY(autoCapitalize, autocapitalizationType, UITextAutocapitalizationType)
|
|
RCT_CUSTOM_VIEW_PROPERTY(fontSize, CGFloat, RCTTextField)
|
|
{
|
|
view.font = [RCTConvert UIFont:view.font withSize:json ?: @(defaultView.font.pointSize)];
|
|
}
|
|
RCT_CUSTOM_VIEW_PROPERTY(fontWeight, NSString, RCTTextField)
|
|
{
|
|
view.font = [RCTConvert UIFont:view.font withWeight:json]; // defaults to normal
|
|
}
|
|
RCT_CUSTOM_VIEW_PROPERTY(fontStyle, NSString, RCTTextField)
|
|
{
|
|
view.font = [RCTConvert UIFont:view.font withStyle:json]; // defaults to normal
|
|
}
|
|
RCT_CUSTOM_VIEW_PROPERTY(fontFamily, NSString, RCTTextField)
|
|
{
|
|
view.font = [RCTConvert UIFont:view.font withFamily:json ?: defaultView.font.familyName];
|
|
}
|
|
|
|
- (RCTViewManagerUIBlock)uiBlockToAmendWithShadowView:(RCTShadowView *)shadowView
|
|
{
|
|
NSNumber *reactTag = shadowView.reactTag;
|
|
UIEdgeInsets padding = shadowView.paddingAsInsets;
|
|
return ^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry) {
|
|
((RCTTextField *)viewRegistry[reactTag]).contentInset = padding;
|
|
};
|
|
}
|
|
|
|
@end
|