我是OSX开发的新手,我是Swift的新手。我想用WebView编写简单的应用程序。 我可以加载url,但是我需要捕获事件,WebView结束加载内容。
这是我的app delegate.swift文件:
import WebKit
class AppDelegate: NSObject, NSApplicationDelegate{
@IBOutlet weak var window: NSWindow!
@IBOutlet var webview: WebView!
func applicationDidFinishLaunching(aNotification: NSNotification?) {
let url = NSURL(string: "google.com")
let request = NSURLRequest(URL: url);
webview.mainFrame.loadRequest(request);
}
func applicationWillTerminate(aNotification: NSNotification?) {
}
}
我尝试制作WebFrameLoad委托类:
import WebKit
class WebViewControllerDelegate: WebFrameLoadDelegate{
@IBOutlet var webview: WebView!
override func didFinishLoadForFrame()
{
println("ok:");
}
}
它不起作用。而且我也不知道如何将此委托设置为我的WebView。 TY答案。
答案 0 :(得分:1)
一般来说,WebViewControllerDelegate
将是将webView作为属性的类。
移动此代码:
@IBOutlet var webview: WebView!
let url = NSURL(string: "google.com")
let request = NSURLRequest(URL: url)
self.webview.mainFrame.loadRequest(request)
到WebViewControllerDelegate
然后,您还需要在WebViewControllerDelegate
self.webView.delegate = self
如果您未设置此项,系统将不会为您调用委托方法。
最后,您需要确保您的类符合WebFrameLoadDelegate协议(您已经完成)。
class WebViewControllerDelegate: WebFrameLoadDelegate{
上述意味着你有一个viewController,它有一个webView属性,符合正确的委托协议,,并且本身是webView的委托。
然后将为您调用WebViewControllerDelegate
中定义的委托方法。