diff options
Diffstat (limited to 'Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs')
-rw-r--r-- | Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs index e47d2fa4..7b5461e2 100644 --- a/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs +++ b/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs @@ -22,6 +22,7 @@ namespace Xamarin.Forms.Platform.iOS public class PickerRenderer : ViewRenderer<Picker, UITextField> { UIPickerView _picker; + UIColor _defaultTextColor; protected override void OnElementChanged(ElementChangedEventArgs<Picker> e) { @@ -56,12 +57,15 @@ namespace Xamarin.Forms.Platform.iOS entry.InputView = _picker; entry.InputAccessoryView = toolbar; + _defaultTextColor = entry.TextColor; + SetNativeControl(entry); } _picker.Model = new PickerSource(this); UpdatePicker(); + UpdateTextColor(); ((ObservableList<string>)e.NewElement.Items).CollectionChanged += RowsCollectionChanged; } @@ -76,6 +80,8 @@ namespace Xamarin.Forms.Platform.iOS UpdatePicker(); if (e.PropertyName == Picker.SelectedIndexProperty.PropertyName) UpdatePicker(); + if (e.PropertyName == Picker.TextColorProperty.PropertyName || e.PropertyName == VisualElement.IsEnabledProperty.PropertyName) + UpdateTextColor(); } void OnEnded(object sender, EventArgs eventArgs) @@ -133,6 +139,16 @@ namespace Xamarin.Forms.Platform.iOS _picker.Select(Math.Max(formsIndex, 0), 0, true); } + void UpdateTextColor() + { + var textColor = Element.TextColor; + + if (textColor.IsDefault || !Element.IsEnabled) + Control.TextColor = _defaultTextColor; + else + Control.TextColor = textColor.ToUIColor(); + } + class PickerSource : UIPickerViewModel { readonly PickerRenderer _renderer; |