0

我正在尝试从 WebView 获取当前 URL 和标题。我已将其用于 URL

- (void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame
{
    // Only report feedback for the main frame.
    if (frame == [sender mainFrame]){
        NSString *url = [[[[frame provisionalDataSource] request] URL] absoluteString];
        [addressBar setStringValue:url];
    }
}

这是标题:

- (void)webView:(WebView *)sender didReceiveTitle:(NSString *)title forFrame:(WebFrame *)frame
{
    // Report feedback only for the main frame.
    if (frame == [sender mainFrame]){
        [[sender window] setTitle:title];
    }
}

此代码直接来自 Apple 的 WebKit Objective-C Programming Guide。我只是将 URL 方法稍微修改为 addressBar 而不是 textField。但它不起作用。addressBar 字段永远不会填充页面的 URL,并且窗口标题不会更新 ether。界面生成器中的所有内容都已正确连接。为什么它不起作用?

4

3 回答 3

1

如果页面已经加载,那么它不是临时数据源,请将其替换为

[[[[frame dataSource] request] URL] absoluteString];
于 2013-07-16T11:28:42.067 回答
0

这是你让这个工作。

  1. 设置你frameLoadDelegateWebView对象。在您的可视界面中,从您的WebView元素控制拖动到NSWindow包含WebView. 松开鼠标时,会出现一个黑色的小下拉菜单。选择frameLoadDelegate。完成此操作后,诸如此类的消息webView:DidReceiveTitle:forFrame将发送到您的NSWindow.
  2. 创建一个子类NSWindow并将您的NSWindow对象分配给这个子类。由于这个新的子对象将从 继承所有内容NSWindow,因此它将接收webView:DidReceiveTitle:forFrame消息。
  3. 将上面的代码粘贴到这个新的子类中。这有效地覆盖了父类的方法定义,并让您自主控制发生的事情。

希望有帮助。

于 2014-07-03T23:41:09.453 回答
0

不幸的是,我自己也不知道。但是我发现了一个很棒的网站,里面有教程,其中一个是制作 RSS 提要,并且它从 RSS 中获取标题。如果向下滚动,您会看到它。希望你可以修改它来工作!

http://www.raywenderlich.com/2636/how-to-make-a-simple-rss-reader-iphone-app-tutorial

于 2012-11-07T22:45:47.747 回答