public override async Task <TEditorResponse> ShowTEditor(string html, ToolbarBuilder toolbarBuilder = null, bool autoFocusInput = false, Dictionary <string, string> macros = null) { TaskCompletionSource <TEditorResponse> taskRes = new TaskCompletionSource <TEditorResponse>(); var tvcController = new TEditorViewController(); ToolbarBuilder builder = toolbarBuilder; if (toolbarBuilder == null) { builder = new ToolbarBuilder().AddAll(); } tvcController.BuildToolbar(builder); tvcController.SetHTML(html); tvcController.SetAutoFocusInput(autoFocusInput); tvcController.Title = CrossTEditor.PageTitle; tvcController.SetMacrosDicitionary(macros); var tvcWrapper = new UINavigationController(tvcController); var nav = (UINavigationController)UIApplication.SharedApplication.KeyWindow.RootViewController; tvcController.NavigationItem.SetLeftBarButtonItem(new UIBarButtonItem(CrossTEditor.CancelText, UIBarButtonItemStyle.Plain, (item, args) => { if (nav != null) { nav.PopViewController(true); } taskRes.SetResult(new TEditorResponse() { IsSave = false, HTML = string.Empty }); }), true); tvcController.NavigationItem.SetRightBarButtonItem(new UIBarButtonItem(CrossTEditor.SaveText, UIBarButtonItemStyle.Done, async(item, args) => { if (nav != null) { nav.PopViewController(true); } taskRes.SetResult(new TEditorResponse() { IsSave = true, HTML = await tvcController.GetHTML() }); }), true); tvcWrapper.NavigationBarHidden = false; if (nav != null) { await nav.PresentViewControllerAsync(tvcWrapper, true); } return(await taskRes.Task); }
public override Task <TEditorResponse> ShowTEditor(string html, ToolbarBuilder toolbarBuilder = null, bool autoFocusInput = false, Dictionary <string, string> macros = null) { TaskCompletionSource <TEditorResponse> taskRes = new TaskCompletionSource <TEditorResponse>(); var tvc = new TEditorViewController(); ToolbarBuilder builder = toolbarBuilder; if (toolbarBuilder == null) { builder = new ToolbarBuilder().AddAll(); } tvc.BuildToolbar(builder); tvc.SetHTML(html); tvc.SetAutoFocusInput(autoFocusInput); tvc.Title = CrossTEditor.PageTitle; tvc.SetMacrosDicitionary(macros); UINavigationController nav = null; foreach (var vc in UIApplication.SharedApplication.Windows[0].RootViewController.ChildViewControllers) { if (vc is UINavigationController) { nav = (UINavigationController)vc; } } tvc.NavigationItem.SetLeftBarButtonItem(new UIBarButtonItem(CrossTEditor.CancelText, UIBarButtonItemStyle.Plain, (item, args) => { if (nav != null) { nav.PopViewController(true); } taskRes.SetResult(new TEditorResponse() { IsSave = false, HTML = string.Empty }); }), true); tvc.NavigationItem.SetRightBarButtonItem(new UIBarButtonItem(CrossTEditor.SaveText, UIBarButtonItemStyle.Done, async(item, args) => { if (nav != null) { nav.PopViewController(true); } taskRes.SetResult(new TEditorResponse() { IsSave = true, HTML = await tvc.GetHTML() }); }), true); if (nav != null) { nav.PushViewController(tvc, true); } return(taskRes.Task); }