2012-01-10 64 views
0

我正在制作iPad浏览器,并且出现了一些问题。例如,当我去谷歌,我写谷歌的方向在textField。问题是,当我改变网页时,它仍然说http://www.google.com/。这里是我的代码:显示我的应用中页面的实际URL的问题

-(IBAction)buttonpressed2:(id)sender { 

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

我怎样才能让textField显示,我看现在的页面,而不是在字段中键入的第一个URL?

回答

2

首先,确保当您设置web视图,您分配UIWebViewDelegateself

然后,实施委托方法: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发生特定事件时,在这种情况下,当该方法被自动调用并且我们可以这样响应时。为了设置委托,我们可以进行两种方法之一:

  1. 如果创建的代码的web视图,这是这样的:

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

    那么所有你需要做的被添加以下代码行:

    webView.delegate = self; 
    
  2. 但是,您可能也创造了界面生成器的web视图 - 如果是这样的话,点击web视图和连接选项卡,然后拖动将选项委托给“文件所有者”。

这就是它。

+0

谢谢你们!你帮了我很多,我真的不知道我必须做什么。我认为你也应该知道你已经帮助了一个15岁的开发者:) – user1131097 2012-01-10 21:42:51

+0

没问题。既然答案有帮助,你会不会介意检查我答案旁边的绿色箭头。这给了我一个很好的答案,并指出你提出了一个问题(这也标志着问题的答案)。如果这是一个很好的答案,你也可以点击0上方的向上箭头。 PS。我也是16岁 – Andrew 2012-01-10 23:16:06

+0

另外,请查看raywenderlich.com。他为初学者写专业教程给专家。他甚至为我的高中生 – Andrew 2012-01-10 23:22:02

0

您的班级应实施UIWebViewDelegate协议。然后在方法webView:shouldStartLoadWithRequest:navigationType:你可以这样做:

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

这样,当你浏览到一个新的URL在文本框的值将被更新。

+0

我不能使用这种方法,Xcode不让我 – user1131097 2012-01-15 20:36:27