Пример #1
0
        public static int Run(NSAlert view, Control parent)
        {
            int ret;

            if (parent != null)
            {
                var window = parent.ControlObject as NSWindow;
                if (window == null && parent.ControlObject is NSView)
                {
                    window = ((NSView)parent.ControlObject).Window;
                }
                if (window == null || !view.RespondsToSelector(new Selector("beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo:")))
                {
                    ret = (int)view.RunModal();
                }
                else
                {
                    ret = 0;
                    NSApplication.SharedApplication.InvokeOnMainThread(delegate
                    {
                        view.BeginSheet(window, new MacModal(), new Selector("alertDidEnd:returnCode:contextInfo:"), IntPtr.Zero);
                        ret = (int)NSApplication.SharedApplication.RunModalForWindow(window);
                    });
                }
            }
            else
            {
                ret = (int)view.RunModal();
            }
            return(ret);
        }