我真的不想在这里问这个问题,因为在我看来这应该是非常基本和简单的,但是在昨天之间搜索几个小时之后,我无法在网上找到任何好的例子。还有今天。所以,这里是:
我正在尝试使用OAuth 2.0身份验证的API。为了进行身份验证,我尝试打开一个包含网页的窗口,供用户授予对应用程序的访问权限。出于某种原因,我认为这就像创建一个新的NSWindow和WebView,将窗口的内容设置为WebView,并加载页面URL一样简单;但是,当我运行它时,窗口打开,但从不显示任何内容。我尝试使用autolayout约束,认为webview可能没有正确定位,但这也不起作用。我把它们从下面的代码中取出来了。我试图以xibless的方式做到这一点。以下是我的代码:
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,所以我可能会在某处失去一些理解。任何帮助将不胜感激,因为关于此的文档不是很好。
答案 0 :(得分:0)
嗯,事实证明问题根本与WebView无关。我对此感到非常愚蠢,但是显示的窗口是我创建项目时使用的Cocoa应用程序模板的默认窗口。我试图制作的窗口根本没有显示出来!我觉得尺寸看起来很奇怪。
为了解决这个问题,我只需在实例化窗口后执行以下操作:
window.MakeKeyAndOrderFront(null);
完成此操作后,显示的窗口和网页按预期加载。