summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs16
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;