2016-01-15 10 views
2

Я действительно не хотел спрашивать об этом здесь, потому что мне кажется, что это должно быть действительно простым и простым, но я не могу найти хороших примеров онлайн после поиска нескольких часов между вчерашним и сегодня. Итак, вот так:Отображение веб-страницы в WebView внутри окна Программно с помощью MonoMac

Я пытаюсь поэкспериментировать с API, который использует аутентификацию OAuth 2.0. Чтобы сделать эту проверку подлинности, я пытаюсь открыть окно с веб-страницей, чтобы пользователь мог предоставить доступ к приложению. По какой-то причине я подумал, что это будет так же просто, как создание нового NSWindow и WebView, установка содержимого окна в WebView и загрузка URL-адреса страницы; однако, когда я запускаю это, открывается окно, но ничего не отображается. Я попытался использовать ограничения автоопределения, думая, что веб-просмотр просто не был правильно установлен, но это тоже не сработало. Я взял их из приведенного ниже кода. Я пытаюсь сделать это бесхитростно. Ниже мой код:

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); 

После того, как я сделал это окно отображается и веб-страницы загружаются, как я ожидал.