Пример #1
0
        /// <summary>
        /// Create and setup a new NSDatePicker
        /// </summary>
        /// <param name="pickerStyle">
        /// A <see cref="NSDatePickerStyle"/>
        /// </param>
        private void setupDatePickerControl(NSDatePickerStyle pickerStyle)
        {
            RectangleF frame = new RectangleF(10, 10, 295, 154);

            shrinkGrowFacter = (int)frame.Size.Height - 30;

            // create the date picker control if not created already
            if (datePickerControl == null)
            {
                datePickerControl = new NSDatePicker(frame);
            }

            datePickerControl.DatePickerStyle = pickerStyle;
            // set our desired picker style
            outerBox.AddSubview(datePickerControl);

            datePickerControl.DrawsBackground = true;
            datePickerControl.Bordered        = false;
            datePickerControl.Bezeled         = true;
            datePickerControl.Enabled         = true;

            datePickerControl.TextColor       = textColorWell.Color;
            datePickerControl.BackgroundColor = backColorWell.Color;

            // always set the date/time to TODAY
            datePickerControl.DateValue = DateTime.Now;

            datePickerControl.NeedsDisplay = true;
            updateControls();
            // force update of all UI elements and the picker itself
            // synch the picker style popup with the new style change
            pickerStylePopup.SelectItemWithTag((int)pickerStyle);

            // we want to be the cell's delegate to catch date validation
            datePickerControl.WeakDelegate = this;
            // or we can set us as the delegate to its cell like so:
            // datePickerControl.Cell.WeakDelegate = this;

            // we want to respond to date/time changes
            datePickerControl.Action = new MonoMac.ObjCRuntime.Selector("datePickerAction:");
        }
Пример #2
0
        /// <summary>
        /// User chose a different picker style from the Picker Style popup.
        /// </summary>
        /// <param name="sender">
        /// A <see cref="NSPopUpButton"/>
        /// </param>
        partial void setPickerStyle(NSPopUpButton sender)
        {
            int tag = sender.SelectedCell.Tag;

            if (datePickerControl.DatePickerStyle != (NSDatePickerStyle)tag)
            {
                RectangleF windowFrame = this.Window.Frame;
                RectangleF boxFrame    = outerBox.Frame;

                datePickerControl.Hidden = true;

                if ((NSDatePickerStyle)tag == NSDatePickerStyle.ClockAndCalendar)
                {
                    // for this picker style, we need to grow the window to make room for it.
                    SizeF size = windowFrame.Size;
                    size.Height     += shrinkGrowFacter;
                    windowFrame.Size = size;
                    PointF origin = windowFrame.Location;
                    origin.Y            -= shrinkGrowFacter;
                    windowFrame.Location = origin;

                    size           = boxFrame.Size;
                    size.Height   += shrinkGrowFacter;
                    boxFrame.Size  = size;
                    outerBox.Frame = boxFrame;

                    this.Window.SetFrame(windowFrame, true, true);

                    datePickerControl.DatePickerStyle = NSDatePickerStyle.ClockAndCalendar;

                    // shows these last
                    dateResult1.Hidden = false;
                    dateResult2.Hidden = false;
                    dateResult3.Hidden = false;
                    dateResult4.Hidden = false;
                }
                else
                {
                    NSDatePickerStyle currentPickerStyle = datePickerControl.DatePickerStyle;

                    // shrink the window only if the current style is "clock and calendar"
                    if (currentPickerStyle == NSDatePickerStyle.ClockAndCalendar)
                    {
                        dateResult1.Hidden = true;
                        dateResult2.Hidden = true;
                        dateResult3.Hidden = true;
                        dateResult4.Hidden = true;

                        SizeF size = windowFrame.Size;
                        size.Height     -= shrinkGrowFacter;
                        windowFrame.Size = size;
                        PointF origin = windowFrame.Location;
                        origin.Y            += shrinkGrowFacter;
                        windowFrame.Location = origin;

                        size           = boxFrame.Size;
                        size.Height   -= shrinkGrowFacter;
                        boxFrame.Size  = size;
                        outerBox.Frame = boxFrame;

                        this.Window.SetFrame(windowFrame, true, true);
                    }

                    // set our desired picker style
                    setupDatePickerControl((NSDatePickerStyle)tag);
                }

                datePickerControl.Hidden = false;

                updateControls();
                // force update of all UI elements and the picker itself
            }
        }
Пример #3
0
                /// <summary>
                /// Create and setup a new NSDatePicker
                /// </summary>
                /// <param name="pickerStyle">
                /// A <see cref="NSDatePickerStyle"/>
                /// </param>
                private void setupDatePickerControl (NSDatePickerStyle pickerStyle)
                {
                        
                        CGRect frame = new CGRect (10, 10, 295, 154);
                        shrinkGrowFacter = (int)frame.Size.Height - 30;
                        
                        // create the date picker control if not created already
                        if (datePickerControl == null)
                                datePickerControl = new NSDatePicker (frame);
                        
                        datePickerControl.DatePickerStyle = pickerStyle;
                        // set our desired picker style
                        outerBox.AddSubview (datePickerControl);
                        
                        datePickerControl.DrawsBackground = true;
                        datePickerControl.Bordered = false;
                        datePickerControl.Bezeled = true;
                        datePickerControl.Enabled = true;
                        
                        datePickerControl.TextColor = textColorWell.Color;
                        datePickerControl.BackgroundColor = backColorWell.Color;
                        
                        // always set the date/time to TODAY
						datePickerControl.DateValue = (NSDate)DateTime.Now;
                        
                        datePickerControl.NeedsDisplay = true;
                        updateControls ();
                        // force update of all UI elements and the picker itself
                        // synch the picker style popup with the new style change
                        pickerStylePopup.SelectItemWithTag ((int)pickerStyle);
                        
                        // we want to be the cell's delegate to catch date validation
                        datePickerControl.WeakDelegate = this;
                        // or we can set us as the delegate to its cell like so:
                        // datePickerControl.Cell.WeakDelegate = this;
                        
                        // we want to respond to date/time changes
                        datePickerControl.Action = new ObjCRuntime.Selector ("datePickerAction:");
                        
                }