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
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:
[code lang=”objc”]
#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
[/code]
Ora andiamo nel file BrowserController.m e implementiamo il codice:
[code lang=”objc”]
#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];
}
[/code]
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