public override void AwakeFromNib() { base.AwakeFromNib(); NSDateFormatter.DefaultBehavior = NSDateFormatterBehavior.Default; setupDatePickerControl(NSDatePickerStyle.ClockAndCalendar); // setup the initial NSDatePickerElementFlags since we are using picker style: NSClockAndCalendarDatePickerStyle NSDatePickerElementFlags flags = 0; flags |= NSDatePickerElementFlags.YearMonthDate; flags |= NSDatePickerElementFlags.YearMonthDateDay; flags |= NSDatePickerElementFlags.Era; flags |= NSDatePickerElementFlags.HourMinute; flags |= NSDatePickerElementFlags.HourMinuteSecond; flags |= NSDatePickerElementFlags.TimeZone; datePickerControl.DatePickerElements = flags; minDatePicker.DateValue = DateTime.Now; maxDatePicker.DateValue = NSDate.DistantFuture; secondsRangeEdit.EditingEnded += SecondsRangeEditingEnded; updateControls(); // force update of all UI elements and the picker itself }
/// <summary> /// Updates our checkboxes to reflect the current control flags /// </summary> private void updateDateTimeElementFlags() { NSDatePickerElementFlags elementFlags = datePickerControl.DatePickerElements; // time elements if ((elementFlags & NSDatePickerElementFlags.HourMinute) != 0) { timeElementChecks.SelectCellWithTag((int)TimeElementSelections.HourMinute); } if ((elementFlags & NSDatePickerElementFlags.HourMinuteSecond) != 0) { timeElementChecks.SelectCellWithTag((int)TimeElementSelections.HourMinuteSecond); } if ((elementFlags & NSDatePickerElementFlags.TimeZone) != 0) { timeElementChecks.SelectCellWithTag((int)TimeElementSelections.TimeZone); } // date elements if ((elementFlags & NSDatePickerElementFlags.YearMonthDate) != 0) { dateElementChecks.SelectCellWithTag((int)DateElementSelections.YearMonth); } if ((elementFlags & NSDatePickerElementFlags.YearMonthDateDay) != 0) { dateElementChecks.SelectCellWithTag((int)DateElementSelections.YearMonthDay); } if ((elementFlags & NSDatePickerElementFlags.Era) != 0) { dateElementChecks.SelectCellWithTag((int)DateElementSelections.Era); } }
public static DatePickerStyle ToXwtValue(this NSDatePickerElementFlags flags) { switch (flags) { case NSDatePickerElementFlags.HourMinuteSecond: return(DatePickerStyle.Time); case NSDatePickerElementFlags.YearMonthDate: case NSDatePickerElementFlags.YearMonthDateDay: return(DatePickerStyle.Date); default: return(DatePickerStyle.DateTime); } }
/// <summary> /// The user checked/unchecked one of the "Time Element" checkboxes /// </summary> /// <param name="sender"> /// A <see cref="NSMatrix"/> /// </param> partial void setTimeElementFlags(NSMatrix sender) { NSDatePickerElementFlags flags = datePickerControl.DatePickerElements; bool checkedState = sender.SelectedCell.State == NSCellStateValue.On; switch ((TimeElementSelections)sender.SelectedCell.Tag) { case TimeElementSelections.HourMinute: if (checkedState) { flags |= NSDatePickerElementFlags.HourMinute; } else { flags ^= NSDatePickerElementFlags.HourMinute; } break; case TimeElementSelections.HourMinuteSecond: if (checkedState) { flags |= NSDatePickerElementFlags.HourMinuteSecond; } else { flags ^= NSDatePickerElementFlags.HourMinuteSecond; } break; case TimeElementSelections.TimeZone: if (checkedState) { flags |= NSDatePickerElementFlags.TimeZone; } else { flags ^= NSDatePickerElementFlags.TimeZone; } break; } datePickerControl.DatePickerElements = flags; updateControls(); }
/// <summary> /// The user checked/unchecked one of the "Date Element" checkboxes. /// </summary> /// <param name="sender"> /// A <see cref="NSMatrix"/> /// </param> partial void setDateElementFlags(NSMatrix sender) { NSDatePickerElementFlags flags = datePickerControl.DatePickerElements; bool checkedState = sender.SelectedCell.State == NSCellStateValue.On; switch ((DateElementSelections)sender.SelectedCell.Tag) { case DateElementSelections.YearMonth: if (checkedState) { flags |= NSDatePickerElementFlags.YearMonthDate; } else { flags ^= NSDatePickerElementFlags.YearMonthDate; } break; case DateElementSelections.YearMonthDay: if (checkedState) { flags |= NSDatePickerElementFlags.YearMonthDateDay; } else { flags ^= NSDatePickerElementFlags.YearMonthDateDay; } break; case DateElementSelections.Era: if (checkedState) { flags |= NSDatePickerElementFlags.Era; } else { flags ^= NSDatePickerElementFlags.Era; } break; } datePickerControl.DatePickerElements = flags; updateControls(); }