Creiamo un Cronometro per Mac

      1 commento su Creiamo un Cronometro per Mac

Ciao a tutti Eccici ritrovati con un nuovo tutorial per la programmazione Mac OS.

Come si può intuire dal titolo del post oggi andremo a creare un semplice cronometro ,Dunque iniziamo subito con la creazione di un nuovo progetto di tipo Cocoa Application e chiamiamolo cronometro

[code lang=”objc”]
#import<Cocoa/Cocoa.h>;
@interface cronometroAppDelegate : NSObject &lt;NSApplicationDelegate&gt; {
NSWindow *window;
NSButtonCell *startBottone,*stopBottone;
NSTextField *contatoreText;
}
@property(assign) IBOutlet NSButtonCell *startBottone,*stopBottone;
@property(assign) IBOutlet NSTextField *contatoreText;
@property (assign) IBOutlet NSWindow *window;
//dichiariamo i metodi per la gestione del cronometro
-(IBAction)StartContatore:(id)sender;
-(IBAction)StopContatore:(id)sender;
@end
[/code]

Rechiamoci nel fil file MainMenu.xib in modo da implementare l’interfaccia grafica:

Inseriamo 2 PushButton e una label.

Prima di proseguire con l’implementazione del codice andiamo a settare alcuni parametri facciamo un click sulla label e rechiamoci sull inspector window per modificare il font (utilizzeremo Arial grassetto corsivo 64)

Come testo della label mettiamo 0

I risultato finale deve essere simile a questo:

Prima di passare all’implementazione del codice facciamo i nostri collegamenti dunque facciamo

un click col tasto destro su cronometro app delegate (cubo Blu) e colleghiamo i vari oggetti e le varie azioni a

questo punto non ci resta non ci resta che implementare il codice dunque rechiamoci nel file .m e scriviamo questo codice:

[code lang=”objc”]
//sintetizziamo gli oggetti
@synthesize window,contatoreText,stopBottone,startBottone;
NSTimer *NostroTimer;
int timerContatore;//contatore
– (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
timerContatore=0;//inizializziamo il contatore a 0
}
//implementiamo il metodo
-(IBAction)StartContatore:(id)sender{
stopBottone.title=@\”Stop\”;//diamo un titolo al bottone
[stopBottone setEnabled:YES];
[startBottone setEnabled:NO];
NostroTimer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(gestioneTimer) userInfo:nil repeats:YES];
//il codice appena scritto non fa ltro che settare il timer e riceve informazioni da updateTimer
//un Metodo che creeremo dopo
}
//qui non faccio altro che stoppare il tempo
-(IBAction)StopContatore:(id)sender{
if (NostroTimer!=nil) {
[NostroTimer invalidate];
NostroTimer=nil;
}
[startBottone setEnabled:YES];
stopBottone.title=@\”Reset\”;
startBottone.title=@\”Continua\”;
}
//metodo per la gestione del timer
-(void)gestioneTimer{
timerContatore +=1;//incrementiamo il timer;
contatoreText.stringValue=[NSString stringWithFormat:@\”%i\”,timerContatore];
}
@end
[/code]

Download Progetto Link