示例#1
0
        protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.Entry> e)
        {
            base.OnElementChanged(e);

            if (Control == null ||
                BaseElement == null)
            {
                return;
            }

            var textField = new PaddedTextField();

            textField.EditingChanged += OnEditingChanged;
            textField.EditingDidEnd  += OnEditingEnded;
            textField.ShouldReturn    = OnShouldReturn;
            textField.SecureTextEntry = BaseElement.IsPassword;

            SetNativeControl(textField);

            Control.Placeholder = BaseElement.Placeholder;
            Control.Text        = BaseElement.Text;
            Control.BorderStyle = UITextBorderStyle.None;

            UpdateBackgroundDrawable();
            UpdateMaxLength();
            UpdatePadding();
            UpdateKeyboard();
        }
        UITextField CreateEntry()
        {
            var entry = new PaddedTextField();

            entry.EditingDidBegin += OnStarted;
            entry.EditingDidEnd   += OnEnded;

            _picker = new UIDatePicker {
                Mode = UIDatePickerMode.Date, TimeZone = new NSTimeZone("UTC")
            };
            _picker.ValueChanged += HandleValueChanged;

            var width   = UIScreen.MainScreen.Bounds.Width;
            var toolbar = new UIToolbar(new RectangleF(0, 0, (float)width, 44))
            {
                BarStyle    = UIBarStyle.Default,
                Translucent = true
            };
            var spacer      = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace);
            var doneButton  = new UIBarButtonItem(UIBarButtonSystemItem.Done, (o, a) => entry.ResignFirstResponder());
            var clearButton = new UIBarButtonItem("Clear", UIBarButtonItemStyle.Done,
                                                  (sender, e) =>
            {
                _picker.Date             = DateTime.Now.ToNSDate();
                BaseElement.Date         = DateTime.Now;
                BaseElement.NullableDate = null;
                entry.ResignFirstResponder();
            });

            toolbar.SetItems(new[] { clearButton, spacer, doneButton }, false);

            entry.InputView          = _picker;
            entry.InputAccessoryView = toolbar;

            entry.InputView.AutoresizingMask          = UIViewAutoresizing.FlexibleHeight;
            entry.InputAccessoryView.AutoresizingMask = UIViewAutoresizing.FlexibleHeight;

            _defaultTextColor = entry.TextColor;
            return(entry);
        }