How to use WebView on xcode 4.5.1

Cedric Berger picture Cedric Berger · Dec 12, 2012 · Viewed 10.9k times · Source

I'm new to programming and I need to embed a website in my application (which is blank; I only want to embed the website right now). I've been searching for it since 5:00 PM (It's now 9:30 PM) and I still didn't find anything about that.

What code do I need and in what file I need to write it? What do I have to link together?

I use Xcode 4.5.1 and I'm trying to do a Cocoa application for Mac OS X (not for iOS).

I'm sorry if some of my sentences are not clear, but English is not my primary language.

If you need more information in order to help me, just ask.

Answer

Extra Savoir-Faire picture Extra Savoir-Faire · Dec 12, 2012

In your AppDelegate.h file, add this line below the #import <Cocoa/Cocoa.h> line:

#import <WebKit/WebKit.h>

and add this line below the @property (assign) IBOutlet NSWindow *window; line:

@property (assign) IBOutlet WebView *webView;

Select your MainMenu.xib file.

Open the window inside it, then drag a WebView from the Object Library browser into the window. Align and size it.

There should be an icon representing your AppController object to the left of your UI layout. Control-drag from it to your WebView inside your window. (Do not control-drag from your File's Owner icon!) Release the mouse button. A contextual menu should appear, containing the word webView. Select it.

Add the framework WebKit.framework to your project. Right-click on your Frameworks folder in the resource list on the left side of the Xcode window. Choose "Add files to "<your project name>"... and select the framework using this path: /System/Library/Frameworks/WebKit.framework.

Select your AppDelegate.m file.

In your -applicationDidFinishLaunching: method, replace the comment with this code:

// I provided Apple's URL, but this is where you provide your own instead.
NSURL *url = [NSURL URLWithString:@"http://www.apple.com"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[[[self webView] mainFrame] loadRequest:urlRequest];

Build and run. When the window appears, you should see it load the web page you described in the URL.

A few final words:

I see that you're new here. What I've just done, in the context of Stack Overflow, is to give you a gift. You need to try a little harder looking for resources on the Web. I found two myself, but because they're a bit old (and the development tools look different enough), I embarked upon this answer. I want you to promise that you'll work harder to find answers for yourself. A great place to begin is by reading Apple's own very excellent documentation.