public override IDisposable DatePrompt(DatePromptConfig config) { var top = UIApplication.SharedApplication.GetTopViewController(); var picker = new DatePickerController(config, top) { ProvidesPresentationContextTransitionStyle = true, DefinesPresentationContext = true, ModalPresentationStyle = UIModalPresentationStyle.OverCurrentContext }; return(this.Present(top, picker)); }
public override IDisposable TimePrompt(TimePromptConfig config) { var app = NSApplication.SharedApplication; var controller = new DatePickerController(app.MainWindow?.ContentViewController) { ElementFlags = NSDatePickerElementFlags.HourMinute, SelectedDateTime = config.SelectedTime != null?DateTime.Today.Add((TimeSpan)config.SelectedTime) : DateTime.Now, MinuteInterval = config.MinuteInterval, OkText = config.OkText, CancelText = config.CancelText, Ok = x => config.OnAction?.Invoke(new TimePromptResult(true, x.SelectedDateTime.TimeOfDay)), Cancel = x => config.OnAction?.Invoke(new TimePromptResult(false, x.SelectedDateTime.TimeOfDay)), Use24HourClock = config.Use24HourClock ?? false }; app.InvokeOnMainThread(() => app.MainWindow?.ContentViewController.PresentViewControllerAsSheet(controller)); return(new DisposableAction(() => app.InvokeOnMainThread(() => app.MainWindow?.ContentViewController.DismissViewController(controller)))); }
public override IDisposable DatePrompt(DatePromptConfig config) { var app = NSApplication.SharedApplication; var controller = new DatePickerController(app.MainWindow?.ContentViewController) { ElementFlags = NSDatePickerElementFlags.YearMonthDate, SelectedDateTime = config.SelectedDate ?? DateTime.Now, OkText = config.OkText, CancelText = config.CancelText, Ok = x => config.OnAction?.Invoke(new DatePromptResult(true, x.SelectedDateTime)), Cancel = x => config.OnAction?.Invoke(new DatePromptResult(false, x.SelectedDateTime)), MinimumDateTime = config.MinimumDate, MaximumDateTime = config.MaximumDate }; app.InvokeOnMainThread(() => app.MainWindow?.ContentViewController.PresentViewControllerAsSheet(controller)); return(new DisposableAction(() => app.InvokeOnMainThread(() => app.MainWindow?.ContentViewController.DismissViewController(controller)))); }