我已将我的 WebView UIDelegate 链接到界面构建器中的 BrowserWindowController,这是我实现 webidelegate 功能的委托。在我的 browserwindowcontroller 类中,我也这样做:
类浏览器窗口控制器(NSWindowController):
webView = objc.IBOutlet()
def windowDidLoad(self):
self.webView.setUIDelegate_(self)
def webViewDidStartLoad_(self, webView):
print "DID LOAD START"
def webView_didFailLoadWithError_(self, webView, error):
print "ERROR"
def webViewDidFinishLoad_(self, webView):
print "DID FINISH LOAD"
def webView_shouldStartLoadWithRequest_navigationType_(self, webView, request, nav_type):
print "LOAD REQ"
作为 WebUIDelegate 一部分的最后四个函数都没有被调用。我什至尝试过(什么是正式协议,即使这是非正式的):class BrowserWindowController(NSWindowController, WebKit.protocols.WebUIDelegate):
但这不起作用。我已经以相同的方式实现了 WebView WebPolicyDelegate 并且它确实有效。为什么 WebUIDelegate 不起作用?我已经按照我在文档中阅读的方式链接了它。我错过了这个非正式协议的东西吗?