Creiamo un Browser per il Mac

      1 commento su Creiamo un Browser per il Mac

Ciao a tutti e eccoci con un nuovo tutorial di objective-C (per il mac) oggi come avete potuto intuire dal titolo andremo a creare un browser per il nostro amato mac  ma non perdiamoci in inutili chiacchiere e iniziamo subito !!!

Apriamo xcode e creiamo un nuovo progetto di tipo cocoa Aplication e gli diamo come nome Browser .

In questo progetto andremo subito a creare l’interfaccia grafica dunque clicchiamo sul file mainMenu.xib

Come oggetti inseriamo :

Label,Text field , due push button e una webview(la webview cercate di farla abbastanza grande) il risultato dovrà essere simile a questo :

Ora che abbiamo creato l’interfaccia grafica dobbiamo creare una nuova classe dunque in alto a sinistra clicchiamo su:

(accanto alla scritta xcode) andiamo su file /new/new file  .

Selezioniamo Objective-c class

s

andiamo su next e come nome gli diamo BrowserController.

Torniamo sul file mainWindow.xib e aggiungiamo agli oggetti un oggetto di tipo NSObject(il cubo blu)

Ora clicchiamo sopra al nuovo oggetto inserito e sulla destra dove sta custom class dobbiamo cambiare la classe di appartenenza da NSObject a BrowserController

Ora dobbiamo aggiungere il framework “WebKit.framework”

Ora è arrivato il momento di scrivere un po di codice :

Dunque andiamo su BrowserController.h e digitiamo il seguente codice:


#import <Foundation/Foundation.h>

#import<WebKit/WebKit.h>//aggiungiamo il framework inserito precedentemente

@interface BrowserController : NSObject{

WebView *myWebView; //oggetto web

NSTextField *address; //inseriamo l'indirizzo

NSButton *backButton; //bottone per tornare all pagina precedente

NSButton *forwardButton;

}

@property(assign) IBOutlet NSButton *backButton;

@property(assign) IBOutlet NSButton *forwardButton;

@property(assign) IBOutlet NSTextField *address;

@property(assign) IBOutlet WebView *myWebView;

-(IBAction) loadPreviousPage: (id) sender;

-(IBAction) loadNextPage: (id) sender;

-(IBAction) loadURLFrom: (id) sender;

@end

Ora andiamo nel file BrowserController.m e implementiamo il codice:


#import "BrowserController.h"

#import <WebKit/WebKit.h>

@implementation BrowserController

@synthesize myWebView, address, backButton, forwardButton;

-(void) resetButtons {

[self.backButton setEnabled:[self.myWebView canGoBack]];

[self.forwardButton setEnabled:[self.myWebView canGoForward]];

}

-(IBAction) loadPreviousPage: (id) sender{

[self.myWebView goBack:sender];

[self resetButtons];

}

-(IBAction) loadNextPage: (id) sender{

[self.myWebView goForward:sender];

[self resetButtons];

}

-(IBAction) loadURLFrom: (id) sender{

[self.myWebView takeStringURLFrom:sender];

[self resetButtons];

}

-(void)awakeFromNib {

[self.address setStringValue:@"http://iprog.it"];

[self loadURLFrom:self.address];

}

Come possiamo notare questo codice è veramente molto semplice

Ormai abbiamo quasi finito non ci resta che tornare su mainwindow.xib andare su Browser Controller (cubo blu) cliccarci sopra col tasto destro e fare i vari collegamenti :

OUTLET:

Address —–> textfield

Backbutton———>pushButton

forwardButton—–>pushButton

MywebView——–>webView

Ora è il momento di collegare le azione rimanendo sempre sul cubo blu colleghiamo:

REICEVED ACTION

Loadnextpage ——–>pushButton

loadPreviousPage——>pushButton

loadURLFrom———-> textField

Ora non ci resta che testare la nostra applicazione con un  build e run

Download Project LINK