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));
        }
Example #2
0
        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))));
        }
Example #3
0
        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))));
        }