diff --git a/frameworks/core/components_ng/pattern/text_field/text_field_paint_property.cpp b/frameworks/core/components_ng/pattern/text_field/text_field_paint_property.cpp index ef883e7e7143313882daf413a37e0dce7e352e07..05c19b4885bc9ed955ec6e9c197742a78d50bae3 100644 --- a/frameworks/core/components_ng/pattern/text_field/text_field_paint_property.cpp +++ b/frameworks/core/components_ng/pattern/text_field/text_field_paint_property.cpp @@ -30,7 +30,7 @@ void TextFieldPaintProperty::ToJsonValue(std::unique_ptr& json, const auto textFieldTheme = pipeline->GetTheme(host ? host->GetThemeScopeId() : 0); CHECK_NULL_VOID(textFieldTheme); - json->PutExtAttr("placeholderColor", propCursorColor_.value_or(Color()).ColorToString().c_str(), filter); + json->PutExtAttr("placeholderColor", propPlaceholderColor_.value_or(textFieldTheme->GetPlaceholderColor()).ColorToString().c_str(), filter); auto jsonValue = JsonUtil::Create(true); jsonValue->Put("color", propCursorColor_.value_or(textFieldTheme->GetCursorColor()).ColorToString().c_str()); jsonValue->Put("width", propCursorWidth_.value_or(textFieldTheme->GetCursorWidth()).ToString().c_str()); diff --git a/frameworks/core/components_ng/pattern/text_field/text_field_paint_property.h b/frameworks/core/components_ng/pattern/text_field/text_field_paint_property.h index 1e63660b7275e43900ac9641bd26ece44f8b58a5..a3d75a202b74551604ac152340d8ee44b8fc0252 100644 --- a/frameworks/core/components_ng/pattern/text_field/text_field_paint_property.h +++ b/frameworks/core/components_ng/pattern/text_field/text_field_paint_property.h @@ -36,6 +36,7 @@ public: { auto value = MakeRefPtr(); value->PaintProperty::UpdatePaintProperty(DynamicCast(this)); + value->propPlaceholderColor_ = ClonePlaceholderColor(); value->propInputStyle_ = CloneInputStyle(); value->propCursorColor_ = CloneCursorColor(); value->propCursorWidth_ = CloneCursorWidth(); @@ -47,6 +48,7 @@ public: void Reset() override { PaintProperty::Reset(); + ResetPlaceholderColor(); ResetCursorColor(); ResetCursorWidth(); ResetSelectedBackgroundColor(); @@ -79,6 +81,7 @@ public: void FromJson(const std::unique_ptr& json) override; + ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(PlaceholderColor, Color, PROPERTY_UPDATE_RENDER); ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(CursorColor, Color, PROPERTY_UPDATE_RENDER); ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(CursorWidth, Dimension, PROPERTY_UPDATE_RENDER); ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(SelectedBackgroundColor, Color, PROPERTY_UPDATE_RENDER); diff --git a/frameworks/core/components_ng/pattern/text_field/text_field_pattern.cpp b/frameworks/core/components_ng/pattern/text_field/text_field_pattern.cpp index e907e04ccf3838947270f910560dd9f6ffc73acd..118ee777ce9272fb3d3f9a5a5c973027831c9df6 100644 --- a/frameworks/core/components_ng/pattern/text_field/text_field_pattern.cpp +++ b/frameworks/core/components_ng/pattern/text_field/text_field_pattern.cpp @@ -3976,6 +3976,7 @@ bool TextFieldPattern::OnThemeScopeUpdate(int32_t themeScopeId) if (!paintProperty->HasTextColorFlagByUser()) { auto host = GetHost(); CHECK_NULL_RETURN(host, false); + textFieldLayoutProperty->UpdateTextColor(textFieldTheme->GetTextColor()); host->MarkDirtyNode(PROPERTY_UPDATE_MEASURE); } @@ -5754,7 +5755,7 @@ std::string TextFieldPattern::GetPlaceholderColor() const CHECK_NULL_RETURN(theme, ""); auto layoutProperty = GetLayoutProperty(); CHECK_NULL_RETURN(layoutProperty, ""); - return layoutProperty->GetPlaceholderTextColorValue(theme->GetTextColor()).ColorToString(); + return layoutProperty->GetPlaceholderTextColorValue(theme->GetPlaceholderColor()).ColorToString(); } std::string TextFieldPattern::GetFontSize() const