[MacOS] FIx agains NRE on disposing Entry renderer (#8019)

This commit is contained in:
Rui Marinho 2019-10-18 13:03:53 +01:00 коммит произвёл GitHub
Родитель 42e7cdfc3b
Коммит 3623e993b7
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 29 добавлений и 0 удалений

Просмотреть файл

@ -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;