url进入UITextField

时间:2011-02-28 08:33:38

标签: iphone uiwebview uitextfield

我的视图中有UIWebViewUITextField,但我遇到了问题。

问题是当我浏览不同的网页时,如何自动替换UITextField中的网页网址?

4 个答案:

答案 0 :(得分:3)

使用 UIWebView 实例的以下属性:

@property(nonatomic, readonly, retain) NSURLRequest *request

因此,您可以通过以下方式获取与网络视图相关联的当前 NSURLRequest

NSURLRequest* urlRequest = myWebView.request;

然后,您可以使用以下实例方法获取 NSURL 的关联实例:

- (NSURL *)URL

因此,您现在可以使用以下代码从UIWebView获取 NSURL 对象:

NSURL* url = [myWebView.request URL];

要将此转换为字符串,您可以使用 NSURL absoluteStringrelativeString实例方法。对于这个例子,我将使用absoluteString。

NSString* urlString = [[myWebView.request URL] absoluteString];

现在我们可以使用简单的文本属性设置 UITextField 的文本:

myTextField.text = [[myWebView.request URL] absoluteString];

所以现在我们需要做的就是确保在正确的时间调用前一行代码,以便在页面更改时使用url文本更新文本字段。为此,我们需要使用一个类,它是 UIWebView 的委托(因此符合 UIWebViewDelegate 协议)。如果您不确定如何使用委托,我强烈建议您阅读委托设计模式和Apple Developer文档,因为它在整个iOS开发中使用。

UIWebViewDelegate 类中,您需要按如下方式实现以下方法:

- (void)webViewDidStartLoad:(UIWebView *)webView
{
    myTextField.text = [[myWebView.request URL] absoluteString];
}

这将确保文本字段始终显示上次开始加载的页面的URL(如果您希望在不同的时间更新文本字段,还有其他 UIWebViewDelegate 方法)。

希望这有帮助。

答案 1 :(得分:0)

在.H文件中你声明webview,textfield和IbAction来浏览你输入的文字,它看起来像

  {
    IBOutlet UIWebView *web;

IBOutlet UITextField *text;
  }
 -(IBAction)search:(id)sender;

和.M文件在IBaction中查找

 -(IBAction)search:(id)sender{
NSLog(@"%@",text.text);

NSString *urlAddress = [NSString stringWithFormat:@"http://%@",text.text];

NSURL *url = [NSURL URLWithString:urlAddress];

NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

[web loadRequest:requestObj];
   }

肯定会有效

答案 2 :(得分:0)

webview委托中有一个方法- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

此方法将在Web视图中调用每个请求加载。

在此您可以获取请求对象。从那以后你可以得到网址。

您可以直接在此方法中将网址粘贴到textField中。

此致

萨蒂亚

答案 3 :(得分:0)

你应该定义 - webViewDidStartLoad:UIWebView的id委托方法:

- (void)webViewDidStartLoad:(UIWebView *)webView
{
      yourUITextField.text = [[webView.request URL] path];
}

All from documentation