2016-01-15 44 views
2

我真的不想在这里问这个问题,因为在我看来这应该是非常基础和简单的,但我找不到任何好的例子在昨天和今天之间搜索几个小时后在线。所以,这里有:以编程方式在窗口中显示网页在编程中使用MonoMac

我正在尝试使用OAuth 2.0身份验证的API进行实验。为了执行该认证,我试图打开一个窗口,其中有一个网页,供用户授予对该应用程序的访问权限。出于某种原因,我认为这很简单,只需创建一个新的NSWindow和WebView,将窗口的内容设置为WebView并加载页面URL;然而,当我运行这个时,窗口打开,但从不显示任何东西。我尝试使用自动布局约束,也许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

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

为了解决这个问题,我只是需要实例化窗口后,请执行以下操作:

window.MakeKeyAndOrderFront(null); 

一旦我这样做,显示的窗口和网页加载如我所料。

相关问题