我正在尝试从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编程指南。我只是将URL方法略微修改为addressBar而不是textField。但它不起作用。 addressBar字段永远不会填充页面的URL,并且窗口标题不会更新ether。在界面构建器中正确连接所有内容。为什么它不起作用?
答案 0 :(得分:0)
不幸的是,我自己也不知道。但我发现的是一个很棒的网站,其中有一个教程,其中一个是制作RSS源,并且它从RSS获取标题。如果向下滚动,你会看到它。希望你能修改它才能工作!!
http://www.raywenderlich.com/2636/how-to-make-a-simple-rss-reader-iphone-app-tutorial
答案 1 :(得分:0)
如果页面已经加载,那么它不是provisionaldatasource,请将其替换为
[[[[frame dataSource] request] URL] absoluteString];
答案 2 :(得分:0)
这是你得到这个工作。
frameLoadDelegate
对象设置WebView
。在您的可视界面中,从您的WebView
元素控制拖动到包含NSWindow
的{{1}}。松开鼠标时,会出现一个小黑色下拉菜单。选择WebView
。完成此操作后,frameLoadDelegate
等消息将发送到webView:DidReceiveTitle:forFrame
的实例。NSWindow
创建一个子类,并将您的NSWindow
对象分配给此子类。由于这个新的子对象将继承NSWindow
的所有内容,因此它将收到NSWindow
消息。希望有所帮助。