[Cocoa] Poging tot zinvolle calculator
1 mei 2006 - 14:31   
geplaatst door: Mac OS X
Ik zit weer met een probleem... Cocoa is leuk maar vastzitten is gemakkelijk. Dit is dus mijn programma:

Erg eenvoudig dus. Ik heb een class genaamd CalcController. Het eerste veld heeft als outlet firstField.Het tweede heet secondField. Het uitkomstveld heet resultField. De knop heeft als action calculate: en de NSMatrix heeft als action insertKind:.

Het is de bedoeling dat de gebruiker eerst een getal invoert in het veld firstField, één invoert in secondField, dan de hoofdbewerking opgeeft in de NSMatrix en dan op de knop calculate: drukt.

Het probleem is dat ik, na het bekijken van talloze voorbeelden, het doorspitten van de documentatie en na lang zwoegen er maar niet uitkom welke code ik moet gebruiken.

Wie helpt mij op weg?

[Cocoa] Poging tot zinvolle calculator
1 mei 2006 - 14:39    reactie #1
geplaatst door: Rudi Mentair
Ik houd me meetstal verre van opmerkingen die niet ter zake doen, want een antwoord heb ik niet. maar is dit niet het wiel opnieuw uitvinden? Of is dit een oefening programeren? ik bedoel het niet grof, maar ben wel nieuwsgierig.

(Bewerkt door Rudi Mentair om 14:39, 1-05-2006)

[Cocoa] Poging tot zinvolle calculator
1 mei 2006 - 14:49    reactie #2
geplaatst door: Mac OS X
Ik zei zinvolle calculator, dat betekent niet persé nuttig ;).

Zo is het begonnen:

Dan is dit:

Toch een duidelijke verbetering ;).

[Cocoa] Poging tot zinvolle calculator
1 mei 2006 - 14:50    reactie #3
geplaatst door: leavestone
Geen verstand van programeren wel van interfases.

Zou van te voren laten aangeven wat je wilt doen.

dan eerste getal invullen[ tab ]
tweede getal invullen [ tab ] uitkomst.

[ tab ] terug naar eerst veld & wissen.

extra ook in de muis soucen (uitkomst naar klembord
als optie)

Zou het zo wel een leuke gadget / widget vinden :cool:

[Cocoa] Poging tot zinvolle calculator
1 mei 2006 - 14:57    reactie #4
geplaatst door: Rudi Mentair
maar er is al een rekenorgel widget (lachte hij stompzinnig)
[Cocoa] Poging tot zinvolle calculator
1 mei 2006 - 15:09    reactie #5
geplaatst door: bert
In de hoop dat dit niet nog een opmerking is die je probleem niet oplost: Kun je er misschien uitkomen op basis van het calculator-voorbeeld in het gratis boekje X-code for beginners? http://www.cocoalab.com/developer.htm (click op de hamertjes)

Verder zijn er Cocoa fora waar je vragen kunt stellen (staan onder andere achterin het bovengenoemde boekje).

Bert

(Bewerkt door bert om 15:10, 1-05-2006)

[Cocoa] Poging tot zinvolle calculator
1 mei 2006 - 15:19    reactie #6
geplaatst door: Mac OS X
Ik zie daar geen calculator-voorbeeld staan :cheesy:...
[Cocoa] Poging tot zinvolle calculator
1 mei 2006 - 16:24    reactie #7
geplaatst door: BraboMac
Ik snap je probleem niet precies, dus misschien moet je iets specifieker zijn.

Wel kan ik je het boek Cocoa For Mac OS X aanraden van Aaron Hillegass. Het is in het Engels maar als je dat voldoende beheerst kan je met dat boek écht leren programmeren. Overigens heeft Apple in de "getting started" hoofdstukken van hun site voor ontwikkelaars een calculator staan. Als je met die begint denk ik ook wel dat je er je eigen draai aan kunt geven daarna.

Big Nerd Ranch blogs for Mac developers (and Nerds)
Er bestaan slechts 10 soorten mensen op deze aarde: Zij die binair kunnen rekenen en zij die dat niet kunnen.
[Cocoa] Poging tot zinvolle calculator
1 mei 2006 - 17:44    reactie #8
geplaatst door: mennodeij
Ik neem aan dat je de knop "Bereken" in de Interface builder hebt verbonden met de actie 'calculate' uit je CalcController?

@interface CalcController : NSObject
{
 IBOutlet NSTextField firstField;
 IBOutlet NSTextField secondField;
 IBOutlet NSTextField resultField;
 IBOutlet NSMatrix calculations;
}

-(IBAction) calculate;
@end

@implementation CalcController

-(IBAction) calculate
{
 float firstValue = [firstField floatValue];
 float secondValue = [secondField floatValue];

 NSButtonCell * cell = [calculations selectedCell];
 NSString * theCalculation = [cell title];

 if ([theCalculation isEqualToString:@"Optelling"])
 {
   float result = firstValue + secondValue;
   [resultField setFloatValue:result];
 }
 else if ([theCalculation isEqualToString:@"Aftrekking"])
 {
   float result = firstValue - secondValue;
   [resultField setFloatValue:result];
 }
}

@end

Vu-ja-dé: the odd feeling nothing has ever happened before...
[Cocoa] Poging tot zinvolle calculator
1 mei 2006 - 18:24    reactie #9
geplaatst door: Mac OS X
Dank, dank! Nu heb ik nog één enkel probleem: deze code werkt enkel in de Nederlandse versie van het programma. Hoe laat ik hem ook werken in het Engels (zonder dubbele code).
[Cocoa] Poging tot zinvolle calculator
2 mei 2006 - 12:39    reactie #10
geplaatst door: TGV
Dan moet je ook een Engelse interface toevoegen. Je Nederlandse resources (de .nib files) moeten in "Dutch.lproj" zitten en de Engelse in "English.lproj".
[Cocoa] Poging tot zinvolle calculator
2 mei 2006 - 15:48    reactie #11
geplaatst door: limmelambok
Geef in IB elke radiobuttoncell een tag en vervang de regel

NSString * theCalculation = [cell title];

door
int            selectie = [cell tag];

om te weten of je dan moet optellen of aftrekken kan je een switch zetten op selectie (zomaar uit het hoofd is dat iets in de aard van

switch (selectie)
{
    case 0:
          telOp;
          break;
    case 1;
          maak het verschil;
          break;
    enzoverder...
}  

MacBookPro 2Ghz
G5 Dual*2.7
[Cocoa] Poging tot zinvolle calculator
24 mei 2006 - 15:26    reactie #12
geplaatst door: jackwburger
Je moet een engelse en nederlandse Localizable.strings file in je project hebben (2 nibs) en dan voor elke string die je wilt vertalen in de code NSLocalizedString(@"Engelse tekst",@""); gebruiken

Success

J.