Cocoa Application Tutorial

Post on 05-Mar-2015

66 views 1 download

transcript

Converter.hconvertCurrency Converter.m

nextKeyViewinitialFirstResponder

ConverterController

ConverterController rateField

convert: ConverterController.m

c_conv512.png

!

!

!

!

!

!

!

!

!

!

!

!

ObjCTutorial_companion.zip

!

!

!

!

convertCurrency

/Developer/Applications

!

! main.m mainCurrency Converter_Prefix.pch

!

!

!

!

!

!

Currency Converter.xcodeproj

main.mmain

English.lproj

Dutch.lproj

Converter

Converter.h Converter.m

!

! float sourceCurrencyAmount rate

! (float)convertCurrency

Converter.h Converter.h

Converter.h

Converter.h

#import <Cocoa/Cocoa.h>@interface Converter : NSObject { float sourceCurrencyAmount, rate;

}

@property(attributes) Type variableNameList;

readwrite copy

@property(copy) NSString *name;

Converter.h@end

@property(readwrite) float sourceCurrencyAmount, rate;

- (float)sourceCurrencyAmount;- (void)setSourceCurrencyAmount:(float)newSourceCurrencyAmount;- (float)rate;- (void)setRate:(float)newRate;

Converter.h

- (float)convertCurrency;

Converter.h

Converter.m

sourceCurrencyAmount rate

@propertyConverter.h @synthesize @implementation

Converter.m @implementation Converter

@synthesize sourceCurrencyAmount, rate;

sourceCurrencyAmountrate Converter.h

Converter.m

convertCurrency Converter.m

#import "Converter.h"

@implementation Converter@synthesize sourceCurrencyAmount, rate;

- (float)convertCurrency {

return self.sourceCurrencyAmount * self.rate;

}

@end

convertCurrencyself.sourceCurrencyAmount

sourceCurrencyAmount self

!

!

!

!

NSWindowNSWindow

NSWindow NSWindowNSWindow

NSWindowNSApplication

NSApplicationNSWindow

NSWindow

MainMenu.xib

MainMenu.xib

Exchange Rate per $1:

!

!

!

!

!

nextKeyView

nextKeyView

nextKeyView

nextKeyView

nextKeyView

initialFirstResponder

initialFirstResponder

MainMenu.nib

initialFirstResponder

initialFirstResponder

IBOutlet id variableName;

IBOutlet

idid

IBOutlet NSButton* myButton;

null

null

NSControlNSActionCell

convertConverterController

ConverterController

- (IBAction)myAction:(id)sender;

IBAction IBOutlet

NSObject

!

!

delegate

ConverterController

ConverterController.m

ConverterControllerConverter

Converter

IBOutlet NSTextField *amountField;

IBOutlet NSTextField *dollarField;

IBOutlet NSTextField *rateField;

NSTextFieldid

ConverterController convert:convert: ConverterController

ConverterController convert:convert:

#import <Cocoa/Cocoa.h>

@interface ConverterController : NSObject { IBOutlet NSTextField *amountField; IBOutlet NSTextField *dollarField; IBOutlet NSTextField *rateField;}- (IBAction)convert:(id)sender;

@end

convert:

ConverterController

ConverterController

ConverterController.h

MainMenu.xib

ConverterControllerConverterController.h

ConverterController

ConverterControllerConverterController

ConverterController

rateField

ConverterController rateField

ConverterController dollarField amountField

ConverterController

ConverterController

convert:

ConverterController

ConverterController.h

Converter *converter;

convert: ConverterControllerconvert: ConverterController

convertCurrency Converter

Converter.h ConverterController ConverterConverterController.h

#import "Converter.h"

ConverterController.m

convert: ConverterController.m

convert: ConverterController.m

#import "ConverterController.h"@implementation ConverterController- (IBAction)convert:(id)sender {

float amount;

converter = [[Converter alloc]init];

[converter setSourceCurrencyAmount:[dollarField floatValue]];

[converter setRate:[rateField floatValue]];

amount = [converter convertCurrency];

[amountField setFloatValue:amount];

[rateField selectText:self];

}

@end

convert:

Converter rateField dollarField

convertCurrency converter

setFloatValue:amountField

selectText:

convert:

amount

convert:

converter = [[Converter alloc]init];

Converter

Supported

ConverterController.m

setFloatValue

[NSCell setFloatValue] NSCell.hsetFloatValue

!

!

!

!

!

!

Info.plist

Info.plist

!

CFBundleIdentifier Info.plist

.

com org

com.apple

AddressBook

!

CFBundleVersion Info.plist

55 1.2 1.2.0.55

!

CFBundleShortVersionStringInfo.plist

! © 2007,My Company

NSHumanReadableCopyright Info.plist

!

CFBundleName Info.plist

!

CFBundleIconFile Info.plist

ObjCTutorial_companion.zip

Currency Converter

InfoPlist.strings

com.mycompany.CurrencyConverter

100

1.0.0

© 2009, My Company

Info.plist

info.plist

NSHumanReadableCopyright Info.plistInfoPlist.strings (English)

Info.plist

InfoPlist.strings (English) Info.plist

> open -b com.mycompany.CurrencyConverter

open.app

CFBundleShortVersionString

CFBundleName CFBundleVersionNSHumanReadableCopyright

ObjCTutorial_companion.zip

/Developer/Applications/Utilities

ObjCTutorial_companion/application_icon_images

c_conv512.png

c_conv512.png

APPL.icns

APPL.icns

APPL.icns

nextKeyView

!

! NSText

!

!

!

!

NSBezierPath

[anObject doSomethingWithArg:this];

int result = [anObj calcTotal];

NSWindow

[[form window] makeKeyAndOrderFront:self];

nil nilnil

self superself

super

[super init];

init

id

id myObject;

NSString* mystring;

-

- (NSString*)countryName;

void

- (id)initWithName:(NSString*)name andType:(int)type;

@private

#import"Converter.h" ConverterController.h

converter

#import "Converter.h"