diff --git a/Libraries/Components/TextInput/TextInput.js b/Libraries/Components/TextInput/TextInput.js index bf988f5931ae6d..b4c8639a533d6d 100644 --- a/Libraries/Components/TextInput/TextInput.js +++ b/Libraries/Components/TextInput/TextInput.js @@ -439,6 +439,7 @@ var TextInput = React.createClass({ onSubmitEditing={this.props.onSubmitEditing} onSelectionChangeShouldSetResponder={() => true} placeholder={this.props.placeholder} + placeholderTextColor={this.props.placeholderTextColor} text={this.state.bufferedValue} autoCapitalize={autoCapitalize} autoCorrect={this.props.autoCorrect} diff --git a/React/Views/RCTTextFieldManager.m b/React/Views/RCTTextFieldManager.m index 6e78d86a3b1c39..9be1c553d6b36f 100644 --- a/React/Views/RCTTextFieldManager.m +++ b/React/Views/RCTTextFieldManager.m @@ -54,6 +54,13 @@ - (UIView *)view { view.font = [RCTConvert UIFont:view.font withFamily:json ?: defaultView.font.familyName]; } +RCT_CUSTOM_VIEW_PROPERTY(placeholderTextColor, UIColor, RCTTextField) +{ + if (view.placeholder != nil && [view respondsToSelector:@selector(setAttributedPlaceholder:)]) { + NSAttributedString *attributedPlaceholder = [[NSAttributedString alloc] initWithString:view.placeholder attributes:@{NSFontAttributeName:view.font, NSForegroundColorAttributeName:[RCTConvert UIColor:json]}]; + [view setAttributedPlaceholder:attributedPlaceholder]; + } +} - (RCTViewManagerUIBlock)uiBlockToAmendWithShadowView:(RCTShadowView *)shadowView {