[MacOS] FIx agains NRE on disposing Entry renderer (#8019)
This commit is contained in:
Родитель
42e7cdfc3b
Коммит
3623e993b7
|
@ -240,11 +240,17 @@ namespace Xamarin.Forms.Platform.MacOS
|
|||
|
||||
void UpdateAlignment()
|
||||
{
|
||||
if (IsElementOrControlEmpty)
|
||||
return;
|
||||
|
||||
Control.Alignment = Element.HorizontalTextAlignment.ToNativeTextAlignment(((IVisualElementController)Element).EffectiveFlowDirection);
|
||||
}
|
||||
|
||||
void UpdateColor()
|
||||
{
|
||||
if (IsElementOrControlEmpty)
|
||||
return;
|
||||
|
||||
var textColor = Element.TextColor;
|
||||
|
||||
if (textColor.IsDefault || !Element.IsEnabled)
|
||||
|
@ -263,11 +269,17 @@ namespace Xamarin.Forms.Platform.MacOS
|
|||
|
||||
void UpdateFont()
|
||||
{
|
||||
if (IsElementOrControlEmpty)
|
||||
return;
|
||||
|
||||
Control.Font = Element.ToNSFont();
|
||||
}
|
||||
|
||||
void UpdatePlaceholder()
|
||||
{
|
||||
if (IsElementOrControlEmpty)
|
||||
return;
|
||||
|
||||
var formatted = (FormattedString)Element.Placeholder;
|
||||
|
||||
if (formatted == null)
|
||||
|
@ -285,11 +297,16 @@ namespace Xamarin.Forms.Platform.MacOS
|
|||
|
||||
protected override void SetAccessibilityLabel()
|
||||
{
|
||||
if (IsElementOrControlEmpty)
|
||||
return;
|
||||
Control.AccessibilityLabel = (string)Element?.GetValue(AutomationProperties.NameProperty) ?? Control.PlaceholderAttributedString?.Value;
|
||||
}
|
||||
|
||||
void UpdateText()
|
||||
{
|
||||
if (IsElementOrControlEmpty)
|
||||
return;
|
||||
|
||||
// ReSharper disable once RedundantCheckBeforeAssignment
|
||||
if (Control.StringValue != Element.Text)
|
||||
Control.StringValue = Element.Text ?? string.Empty;
|
||||
|
@ -297,6 +314,9 @@ namespace Xamarin.Forms.Platform.MacOS
|
|||
|
||||
void UpdateMaxLength()
|
||||
{
|
||||
if (IsElementOrControlEmpty)
|
||||
return;
|
||||
|
||||
var currentControlText = Control?.StringValue;
|
||||
|
||||
if (currentControlText.Length > Element?.MaxLength)
|
||||
|
@ -306,6 +326,9 @@ namespace Xamarin.Forms.Platform.MacOS
|
|||
|
||||
void UpdateIsReadOnly()
|
||||
{
|
||||
if (IsElementOrControlEmpty)
|
||||
return;
|
||||
|
||||
Control.Editable = !Element.IsReadOnly;
|
||||
if (Element.IsReadOnly && Control.Window?.FirstResponder == Control.CurrentEditor)
|
||||
Control.Window?.MakeFirstResponder(null);
|
||||
|
|
|
@ -445,6 +445,9 @@ namespace Xamarin.Forms.Platform.MacOS
|
|||
|
||||
void UpdateTextHtml()
|
||||
{
|
||||
if (IsElementOrControlEmpty)
|
||||
return;
|
||||
|
||||
string text = Element.Text ?? string.Empty;
|
||||
|
||||
#if __MOBILE__
|
||||
|
@ -574,6 +577,9 @@ namespace Xamarin.Forms.Platform.MacOS
|
|||
|
||||
void UpdatePadding()
|
||||
{
|
||||
if (IsElementOrControlEmpty)
|
||||
return;
|
||||
|
||||
if (Element.Padding.IsEmpty)
|
||||
return;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче