MiniBrowser Experiment mit WKWebKit

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • MiniBrowser Experiment mit WKWebKit

    Hallo,
    ich habe mal mit Objective-C ein Experiment gewagt und versuche ein MiniBrowser nur für Lernzwecken zu bauen.
    Ich habe es ohne den Storyboard versucht.

    Quellcode

    1. //
    2. // AppDelegate.h
    3. // MiniBrowserObjC + WKWebKit
    4. #import <Cocoa/Cocoa.h>
    5. #import <WebKit/WebKit.h>
    6. @interface AppDelegate : NSObject <NSApplicationDelegate, WKNavigationDelegate>
    7. @property (weak) IBOutlet WKWebView *meineWebView;
    8. @end
    Alles anzeigen

    Quellcode: AppDelegate.m

    1. //
    2. // AppDelegate.m
    3. // MiniBrowserObjC + WKWebKit
    4. #import "AppDelegate.h"
    5. @interface AppDelegate ()
    6. @property (weak) IBOutlet NSWindow *window;
    7. @end
    8. @implementation AppDelegate
    9. - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    10. // Insert code here to initialize your application
    11. // die Web Viwe den Titel der zu ladende Steie empfangen hat
    12. _meineWebView.navigationDelegate = self;
    13. NSURL *meineURL = [NSURL URLWithString: @"https://www.wetter.de"];
    14. NSURLRequest *urlRequest = [NSURLRequest requestWithURL: meineURL];
    15. [_meineWebView loadRequest: urlRequest];
    16. }
    17. - (void)applicationWillTerminate:(NSNotification *)aNotification {
    18. // Insert code here to tear down your application
    19. }
    20. - (void)webView: (WKWebView *)sender didReceiveTitle: (NSString *)title forFrame: (WKFrameInfo *)frame {
    21. //den Titel setzen
    22. _window.title = _meineWebView.title;
    23. }
    24. @end
    Alles anzeigen

    Ich möchte jetzt, dass die URL-Adresse in dem Fenster oben angezeigt wird.
    Aber ich glaube der letzten Zeilen-Code in AppDelegate.m ist nicht ganz korrekt.

    Ich habe es auch anhand der Dokumentation versucht. Ich werde aber nicht so ganz schlau daraus.

    Was mach ich falsch. Wie muss es mit WKWebKit deklariert werden?

    Vielen Dank im Voraus für Eure Hilfe!
  • Ok, da der o.a. Code ja Objective-C ist war mir nicht klar, dass Du etwas für Swift suchst. :D

    Für Swift sollte dies etwa so aussehen (von The Ultimate Guide to WKWebView) :

    Quellcode

    1. _meineWebView.addObserver(self, forKeyPath: #keyPath(WKWebView.title), options: .new, context: nil)

    Quellcode

    1. override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    2. if keyPath == "title" {
    3. if let title = webView.title {
    4. _window.title = title
    5. }
    6. }
    7. }

    Du kannst auch einen Observer mit einem Block verwenden. Da musst Du mal schauen, wie dies in Swift aussieht.