开发者

url into UITextField

开发者 https://www.devze.com 2023-02-14 07:59 出处:网络
I have a UIWebView and UITextField 开发者_开发技巧in my view but am facing a problem. The problem is how do I replace the URL of the web page in UITextField automatically, as I surf through different

I have a UIWebView and UITextField 开发者_开发技巧in my view but am facing a problem.

The problem is how do I replace the URL of the web page in UITextField automatically, as I surf through different web pages?


Use the following property of the UIWebView instance:

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

So you can get the current NSURLRequest associated with the web view by:

NSURLRequest* urlRequest = myWebView.request;

You can then get the associated instance of NSURL using the following instance method:

- (NSURL *)URL

So you can now get the NSURL object form the UIWebView with the following code:

NSURL* url = [myWebView.request URL];

To convert this to a string you can use either the absoluteString or relativeString instance methods of NSURL. For this example I'll use absoluteString.

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

Now we can set the the text of the UITextField using the simple text property:

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

So now all we need to do is ensure that the previous line of code gets called at the correct time in order to update the text field with the url text whenever the page changes. To do this, we need to use a class which is a delegate of the UIWebView (and thus conforms to the UIWebViewDelegate protocol). If you're unsure about how to use delegates I strongly suggest you do some reading of the delegate design patterns and Apple Developer documentation, as it's used throughout iOS development.

In your UIWebViewDelegate class, you need to implement the following method as follows:

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

This will ensure the text field always displays the url of the page that last started to load (there are other UIWebViewDelegate methods if you'd rather the text field be updated at a different time).

Hope this helps.


In .H file u declare webview, textfield and IbAction to browse the text u enter and it looks like

  {
    IBOutlet UIWebView *web;

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

and .M file looks in 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];
   }

surely this works


You should define – webViewDidStartLoad: method of id delegate of your UIWebView:

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

All from documentation


There is a method - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType in the webview delegate.

This method will call for every request load in the web view.

In this you can get the request Object. From that you can get the URL.

You can directly paste the URL in the textField in this method.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号