Customizations that use FDetailPropertyRow::CustomWidget and set the visibility attribute do not honor it. A Customization set up like the below, for instance, will not honor the Visibility in red due to it being a CustomWidget. The reason is that things that make their widgets this way are not added to the tickable nodes to have the visibility refreshed.
IDetailPropertyRow& ComplexFieldDetailPropertyRow = StructBuilder.AddProperty(ComplexFieldPropertyHandle);
ComplexFieldDetailPropertyRow.GetDefaultWidgets(ComplexFieldNameWidget, ComplexFieldValueWidget);
ComplexFieldDetailPropertyRow
.CustomWidget()
// <DOESN'T WORK>
.Visibility(TAttribute<EVisibility>(this, &FMyStructCustomization::GetFieldVisibilityFailing))
.NameContent()
[
ComplexFieldNameWidget.ToSharedRef()
]
.ValueContent()
[
ComplexFieldValueWidget.ToSharedRef()
];
Generally speaking, each time you tab out of the simple field, ComplexField row should be showing if and only if there is text in the Simple Field text box (see gif)
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-199425 in the post.
0 |
Component | UE - Editor - Workflow Systems |
---|---|
Affects Versions | 5.3 |
Target Fix | 5.4 |
Fix Commit | 29528182 |
---|---|
Main Commit | 29531220 |
Created | Oct 31, 2023 |
---|---|
Resolved | Nov 8, 2023 |
Updated | Feb 1, 2024 |