【问题标题】:problems showing the actual URL of a page in my app在我的应用中显示页面的实际 URL 时出现问题
【发布时间】:2012-01-10 19:29:39
【问题描述】:

我正在制作一个 iPad 浏览器,但我遇到了一个小问题。例如,当我去 google 时,我将 google 方向写在 textField 中。问题是当我更改网页时,它仍然显示http://www.google.com/。这是我的代码:

-(IBAction)buttonpressed2:(id)sender {

    url = [NSURL URLWithString:[textField text]];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
    [webView isEqual:textField.text];
}

如何让textField 显示我现在正在观看的页面,而不是在该字段中输入的第一个网址?

【问题讨论】:

    标签: iphone objective-c ios ipad nsurl


    【解决方案1】:

    首先,确保在设置 webView 时,将 UIWebViewDelegate 分配给 self

    然后,实现委托方法:webViewDidFinishLoad,如:

    - (void)webViewDidFinishLoad:(UIWebView *)webView {
    
        NSURLRequest *currentRequest = [webView request];
        NSURL *currentURL = [currentRequest URL];
    
        //This will log the current url
        NSLog(@"Current URL is %@", currentURL.absoluteString);
    
        //Then to display it in the textField
        textfield.text = currentURL.absoluteString;
     }
    

    编辑:

    委托是一组特殊的等待事件发生的方法。当该事件发生时,将调用适当的方法。上面的方法是 UIWebView 的委托方法之一 - 当 webView 发生特定事件时,在这种情况下,当 webViewDidFinishLoad 时,该方法会自动调用,我们可以这样响应。为了设置委托,我们可以采用以下两种方式之一:

    1. 如果您在代码中创建了 webView,则如下所示:

      UIWebView *webView = [[UIWebView alloc] init...]
      

      那么您需要做的就是添加以下代码行:

      webView.delegate = self;
      
    2. 但是,您可能还在界面构建器中创建了 webView - 如果是这种情况,请单击 webView 和链接器选项卡,然后将委托选项拖到“文件所有者”。

    就是这样。

    【讨论】:

    • 谢谢你们!你帮了我很多,我真的不知道我该做什么。我认为你也应该知道你帮助了一个 15 岁的开发者:)
    • 没问题。既然答案有帮助,您介意检查我的答案旁边的绿色箭头吗?这给了我一个好答案的分数,而你提出一个问题的分数(它也将问题标记为已回答)。如果答案不错,您也可以点击 0 上方的向上箭头。 PS。我也16岁了
    • 另外,请查看 raywenderlich.com。他为初学者和专家编写了极好的教程。他甚至开始为高中生开设一系列教程
    • +1 来自我,您必须等待 @user1131097 获得更多代表才能投票。但是,他们可以标记支票以接受您的答案。
    • 非常感谢你!我问自己是否可以向我解释我必须如何实现 UIWebViewDelegate,我对协议和这些东西一无所知
    【解决方案2】:

    你的类应该实现UIWebViewDelegate 协议。然后在webView:shouldStartLoadWithRequest:navigationType:方法中你可以这样做:

    [textField setText:[[request URL] absoluteString]];
    

    这样,每当您导航到新网址时,文本字段中的值都会更新。

    【讨论】:

      猜你喜欢
      • 2022-11-15
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      • 2022-07-26
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 2020-09-04
      相关资源
      最近更新 更多