Xcode 为什么WebFrameLoadDelegate被认为是未声明的?

Xcode 为什么WebFrameLoadDelegate被认为是未声明的?,xcode,macos,webview,swift,webkit,Xcode,Macos,Webview,Swift,Webkit,我有一个基本的Cocoa应用程序,它的窗口中只有一个WebView。WebKit.framework参考添加到OSX10.9(Mavericks)上的Xcode6 beta 6项目中。我想知道WebView何时完成加载页面。因此,我创建了一个WebViewControllerDelegate类继承WebFrameLoadDelegate。这已经是问题开始的地方:Xcode告诉我如何使用未声明的类型“WebFrameLoadDelegate”。与此相关,它不应该。如前所述,项目引用了WebKit.

我有一个基本的Cocoa应用程序,它的窗口中只有一个
WebView
WebKit.framework
参考添加到OSX10.9(Mavericks)上的Xcode6 beta 6项目中。我想知道
WebView
何时完成加载页面。因此,我创建了一个
WebViewControllerDelegate
类继承
WebFrameLoadDelegate
。这已经是问题开始的地方:Xcode告诉我如何使用未声明的类型“WebFrameLoadDelegate”。与此相关,它不应该。如前所述,项目引用了
WebKit.framework
,并在Swift类文件中导入了
WebKit
模块。我还在Xcode左侧栏的“Headers”文件夹中看到
WebFrameLoadDelegate.h
,在
WebKit.framework
下面

万恶之源是文件
TestWebView/WebViewControllerDelegate.swift中的行
11
(我忘了删除这里省略的注释)、类声明和协议引用

import WebKit

class WebViewControllerDelegate: WebFrameLoadDelegate {
    func didFinishLoadForFrame() {
        NSLog("didFinishLoadForFrame()")
    }
}
AppDelegate
,用于设置所有内容:

import Cocoa
import WebKit

class AppDelegate: NSObject, NSApplicationDelegate {
    @IBOutlet weak var window: NSWindow!
    @IBOutlet weak var webView: WebView!
    @IBOutlet weak var webViewControllerDelegate: WebViewControllerDelegate!

    func applicationDidFinishLaunching(aNotification: NSNotification?) {
        self.webView.frameLoadDelegate = self.webViewControllerDelegate
        self.webView.mainFrame.loadRequest(NSURLRequest(URL: NSURL(string: "https://stackoverflow.com/")))
    }

    func applicationWillTerminate(aNotification: NSNotification?) {}
}

有关更多信息,请查看我为这个问题创建的my中的代码。

WebFrameLoadDelegate
是一个非正式协议,因此您不能声明它的一致性。只需从
NSObject
继承并实现所需的方法

另外,请注意Swift方法的名称是
webView(发送方:webView!,didFinishLoadForFrame:WebFrame!)
,而不仅仅是
didFinishLoadForFrame()


我相应地更新了我的存储库中的代码,以便其他具有相同或类似问题的人看到一个工作示例。
class WebViewControllerDelegate: NSObject { // WebFrameLoadDelegate
      override func webView(sender: WebView!, didFinishLoadForFrame frame: WebFrame!) {
      NSLog("didFinishLoadForFrame()")
    }
}