Simple OS X app with WKWebView viewer

I am trying to create a simple OS X application (not iOS) using webview using new WKWebViewand Swift language. Im hoping to use a higher class performance WKWebView.

In projects AppDelegate.swift file I have the following code:

import Cocoa
import WebKit

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet weak var window: NSWindow!
    @IBOutlet var containerView : NSView! = nil

    var webView: WKWebView?

    var url = NSURL(string:"http://www.google.com/")
    var req = NSURLRequest(URL: url)
    self.webView!.loadRequest(req)

}

In the MainMenu.xib file, I added a Custom View object to the main window and linked it to @IBOutlet var containerView.

Im getting error messages in the last two lines of code:

var req = NSURLRequest(URL: url)

"AppDelegate. The type does not have a member named 'url

self.webView!.loadRequest(req)

Expected Declaration

Any help would be most appreciated.

+4
source share
3 answers

It took me a while to understand.

import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
    @IBOutlet weak var window: NSWindow!
    var viewController : ViewController!

    func applicationDidFinishLaunching(aNotification: NSNotification) {
        self.viewController = ViewController(nibName:"ViewController", bundle:nil)
        self.window.contentView = self.viewController!.view
        self.window.contentViewController = self.viewController!
        self.viewController!.view.frame = self.window.contentView.bounds;
    }

    ...
}

, NSWindow, . ViewController :

import Cocoa
import WebKit
class ViewController: NSViewController {
    var webView: WKWebView?

    override func loadView() {
        self.webView = WKWebView()
        self.view = self.webView!

        var url = NSURL(string:"http://www.google.com/")
        var req = NSURLRequest(URL: url!)
        self.webView!.loadRequest(req)
    } 
}

, , , WKWebView , NSWindow.

+3

, :

import UIKit import WebKit

class ViewController: UIViewController {

    @IBOutlet var containerView : UIView?
    var webView: WKWebView?

    override func loadView() {
        super.loadView()

        self.webView = WKWebView()
        self.view = self.webView!
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        var url = NSURL(string:"http://chart.finance.yahoo.com/z?s=AAPL&t=6m&q=l&l=on&z=s&p=m50,m200")
        var req = NSURLRequest(URL:url)
        self.webView!.loadRequest(req)
    }
}
+1

Move the last three lines (pronounced url, reqand downloading the query) in AppDelegate method, for example applicationDidFinishLaunching:(in the same way that offers @MinnesotaSteve). You cannot have top level instructions.

+1
source

All Articles