From ee8d0d720461514d82f8b305f2faddf00171444b Mon Sep 17 00:00:00 2001 From: Sumeet Vaidya Date: Thu, 26 Feb 2015 15:24:19 -0800 Subject: [PATCH] [treehouse] Add support for clear button on UITextFields --- Libraries/Components/TextInput/TextInput.ios.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Libraries/Components/TextInput/TextInput.ios.js b/Libraries/Components/TextInput/TextInput.ios.js index 2bd194d17..fef9c16f0 100644 --- a/Libraries/Components/TextInput/TextInput.ios.js +++ b/Libraries/Components/TextInput/TextInput.ios.js @@ -68,6 +68,15 @@ var autoCapitalizeMode = { characters: nativeConstants.AllCharacters }; +var clearButtonModeConstants = NativeModulesDeprecated.RKUIManager.UITextField.clearButtonMode; + +var clearButtonModeTypes = { + never: clearButtonModeConstants.Never, + whileEditing: clearButtonModeConstants.WhileEditing, + unlessEditing: clearButtonModeConstants.UnlessEditing, + always: clearButtonModeConstants.Always, +}; + var keyboardType = { default: 'default', numeric: 'numeric', @@ -90,6 +99,7 @@ var RKTextViewAttributes = merge(ReactIOSViewAttributes.UIView, { var RKTextFieldAttributes = merge(RKTextViewAttributes, { caretHidden: true, enabled: true, + clearButtonMode: true, }); var onlyMultiline = { @@ -105,6 +115,7 @@ var notMultiline = { var TextInput = React.createClass({ statics: { autoCapitalizeMode: autoCapitalizeMode, + clearButtonModeTypes: clearButtonModeTypes, keyboardType: keyboardType, }, @@ -188,6 +199,10 @@ var TextInput = React.createClass({ * and/or laggy typing, depending on how you process onChange events. */ controlled: PropTypes.bool, + /** + * When the clear button should appear on the right side of the text view + */ + clearButtonMode: PropTypes.oneOf(getObjectValues(clearButtonModeTypes)), style: Text.stylePropType, }, @@ -316,6 +331,7 @@ var TextInput = React.createClass({ text={this.state.bufferedValue} autoCapitalize={this.props.autoCapitalize} autoCorrect={this.props.autoCorrect} + clearButtonMode={this.props.clearButtonMode} />; } else { for (var propKey in notMultiline) {