internal CoolModel(CoolPickerRenderer renderer)
 {
     this.renderer = renderer;
     picker        = renderer.Element as CoolPicker;
     currentColor  = picker.PickerTextColor == Color.Default ? Color.Black : picker.PickerTextColor;
     //iOS can not use Color.Default for UIPickerView item title. If use it we will get transparent text.
 }
 void GetSet(out CoolPicker picker, out UITextField entry, out UIView view)
 {
     picker = Element as CoolPicker;
     entry  = Control as UITextField;
     view   = entry.Superview;
 }
        void ReplaceEntry(CoolPicker newPicker)
        {
            var originalEntry = Control as UITextField;
            var customEntry   = new ExtendedField {
                Space = 0
            };

            customEntry.EditingDidBegin += OnStarted;
            customEntry.EditingChanged  += OnEditing;
            customEntry.EditingDidEnd   += OnEnded;

            customEntry.InputAccessoryView = originalEntry.InputAccessoryView;

            var toolBar = (UIToolbar)customEntry.InputAccessoryView;

            if (newPicker.PickerBarColor != Color.Default)
            {
                toolBar.BackgroundColor = newPicker.PickerBarColor.ToUIColor();
            }
            var toolBarItems = toolBar.Items;

            toolBarItems[1] = new UIBarButtonItem(UIBarButtonSystemItem.Done, (o, a) =>
            {
                var picker = (UIPickerView)Control.InputView;
                if (selectedIndex == -1 && Element.Items != null && Element.Items.Count > 0)
                {
                    UpdatePickerSelectedIndex(0);
                }
                else if (selectedIndex >= 0 && Element.Items.Count > 0)
                {
                    UpdateTextColor();
                    Control.Text = Element.Items[selectedIndex];
                }
                else if (selectedIndex >= 0)
                {
                    selectedIndex = -1;
                }
                ElementController.SetValueFromRenderer(Picker.SelectedIndexProperty, selectedIndex);
                customEntry.ResignFirstResponder();
            }
                                                  );
            if (newPicker.PickerBarTextColor != Color.Default)
            {
                toolBarItems[1].TintColor = newPicker.PickerBarTextColor.ToUIColor();
            }
            toolBar.SetItems(toolBarItems, false);

            var pickerView = new UIPickerView();

            customEntry.InputView = pickerView;
            var model = new CoolModel(this);

            pickerView.Model        = model;
            pickerView.WeakDelegate = model;
            if (newPicker.PickerColor != Color.Default)
            {
                pickerView.BackgroundColor = newPicker.PickerColor.ToUIColor();
            }

            originalEntry.RemoveFromSuperview();
            originalEntry.Dispose();
            SetNativeControl(customEntry);
        }