diff --git a/packages/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm b/packages/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm index dbee656c95e6..69dfa4d76866 100644 --- a/packages/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +++ b/packages/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm @@ -374,6 +374,13 @@ - (void)setDefaultTextAttributes:(NSDictionary *)defa attributes:[self defaultTextAttributes]]]; self.font = [[self defaultTextAttributes] objectForKey:NSFontAttributeName]; + + // Plain text set later (`text`) and a secure field's bullets are drawn in textColor, not in the + // attributed text's color, so it has to follow the style too. + NSColor *textColor = [[self defaultTextAttributes] objectForKey:NSForegroundColorAttributeName]; + if (textColor != nil) { + self.textColor = textColor; + } #endif // macOS] }