In questi giorni di vacanza ho ripreso un pò in mano l'Objective-C.

Non per iPhone o iPad, ma per un piccolo programmino per Mac (anche se poi le cose sono abbastanza intercambiabili).

Quello che vediamo è come impostare lo sfondo di una NSImage prendendo l'immagine dal web.

Quindi, alla vostra interfaccia aggiungete un oggetto NSImage e poi collegatelo:

// AppDelegate.h

#import <Cocoa/Cocoa.h>

@interface AppDelegate : NSObject <NSApplicationDelegate> {
  IBOutlet NSImageCell *myImage;
}

@property (assign) IBOutlet NSWindow *window;

@end

Come vedete l'oggetto da linkare, per essere precisi, è NSImageCell.

Invece in Interface Builder dovete trascinare un oggetto Image Well (che poi creerà anche l'oggetto Image Cell al suo interno).

Apriamo una nuova sezione dedicata al linguaggio nativo per i sistemi Apple: Objective-C.

Nello specifico vedremo come caricare una UIWbeView, componente che ci permette di visualizzare le pagine web su iPhone e iPad.

La guida si riferisce infatti ad entrambi i dispositivi.

Nel vostro progetto aggiungete un componente UIWebView e "collegatelo" a InterfaceBuilder.

Ad esempio questo è il mio FirstViewController.h:

#import <UIKit/UIKit.h>

@interface FirstViewController : UIViewController {
     IBOutlet UIWebView *wvCollection;
}

@property (nonatomic, retain) IBOutlet UIWebView *wv_collection;

@end

Adesso nell'implementazione andremo a usare due metodi:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    [wvCollection loadRequest:[LoadUrl load:@"http://www.compagniaitaliana.it/beta/app/collection.php"]];
}

 

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [wvCollection loadRequest:[LoadUrl load:@"http://www.compagniaitaliana.it/beta/app/collection.php"]];
}

Il primo metodo viene caricato solo la prima volta che si accede al controller.

Se poi cambiamo view e ci ritorniamo vediamo che è rimasto come lo avevamo lasciato.

Se vogliamo che si ricarichi ogni volta dobbiamo implementare anche il secondo metodo.