使用 MonoMac 以编程方式在 Window 的 WebView 中显示网页

Displaying a Webpage in a WebView Within a Window Programmatically Using MonoMac

我真的不想在这里问这个,因为在我看来这应该是非常基本和简单的,但是从昨天到今天搜索了几个小时后我在网上找不到任何好的例子.所以,这里是:

我正在尝试使用使用 OAuth 2.0 身份验证的 API。为了进行身份验证,我试图打开一个 window 并在其中包含一个网页,以便用户授予对应用程序的访问权限。出于某种原因,我认为这就像创建一个新的 NSWindow 和 WebView 一样简单,将 window 的内容设置为 WebView,然后加载页面 URL;然而,当我 运行 这个时, window 打开,但从不显示任何东西。我尝试使用自动布局约束,认为 webview 可能没有正确定位,但这也不起作用。我把它们从下面的代码中取出来了。我正试图以一种不灵活的方式做到这一点。下面是我的代码:

using AppKit;
using Foundation;
using CoreGraphics;
using WebKit;

namespace SampleApplication.Mac
{
    [Register ("AppDelegate")]
    public class AppDelegate : NSApplicationDelegate
    {
        public AppDelegate ()
        {
        }

        public override void DidFinishLaunching (NSNotification notification)
        {
            var window = new NSWindow (new CGRect (0, 0, 100, 100), NSWindowStyle.Borderless, NSBackingStore.Buffered, false);
            var webview = new WebView();
            webview.Frame = new CGRect (0, 0, 100, 100);
            window.ContentView = webview;
            webview.MainFrame.LoadRequest(new NSUrlRequest (new NSUrl ("https://google.com")));
        }

        public override void WillTerminate (NSNotification notification)
        {
            // Blah
        }
    }
}

我以前做过一些 Mac 开发,但我从未使用过 WebKit,所以我可能在某些地方缺少一些理解。任何帮助将不胜感激,因为这方面的文档不是很好。

好吧,事实证明这个问题与 WebView 完全无关。我对此感到非常愚蠢,但显示的 window 是默认的,它是我在创建项目时使用的 Cocoa 应用程序模板的一部分。我试图制作的 window 根本没有出现!我觉得尺寸有点奇怪。

为了解决这个问题,我只需要在实例化 window 之后执行以下操作:

window.MakeKeyAndOrderFront(null);

执行此操作后,window 显示并按我预期加载了网页。