Jump to content
Just nu i M3-nätverket

Min första Cocoa-App


phenomen2277

Recommended Posts

phenomen2277

Hej!

 

Jag har precis börjat med cocoa och objCoch kommer från win och C#/Java. Nu till ämnet.

 

Ju, man skapar ett nytt Cocoa-App-Project. De filer som genereras är En appdelegate.h/m och .xib filen och main.c. Man klickar på build så startas MainWin.

 

 

 

 

Det jag vill veta är vilken kodrad som startar MainMenu. Inget i varken main.m eller Appdelegate.m

 

Det finns dock ett property i AppDelegate.h

 

@property (assign) IBOutlet NSWindow *window;

 

Jag förstår vard raden betyder. MainWin IBOutleten är bunden till AppDelegate. Men betyder också att AppDelegate startar fönstret automatiskt?

 

 

 

 

Sedan vill man ha en bättre kontroll över MainWin och då är det AppController som gäller. Alltså en subclass till NSWindowController. En sådan klass har jag skrivit och har implementerat en massa metoder som init, dealloc, windowWillClose, windowWillMiniaturize. Inga av dessa metoder kallas utom init metoden.

 

 

 

 

Snälla! Nån som är duktigt som kan upplysa mig lite?

 

 

Link to comment
Share on other sites

Hej!

 

Jag har precis börjat med cocoa och objCoch kommer från win och C#/Java. Nu till ämnet.

 

Ju, man skapar ett nytt Cocoa-App-Project. De filer som genereras är En appdelegate.h/m och .xib filen och main.c. Man klickar på build så startas MainWin.

 

 

 

 

Det jag vill veta är vilken kodrad som startar MainMenu. Inget i varken main.m eller Appdelegate.m

 

Det finns dock ett property i AppDelegate.h

 

@property (assign) IBOutlet NSWindow *window;

 

Jag förstår vard raden betyder. MainWin IBOutleten är bunden till AppDelegate. Men betyder också att AppDelegate startar fönstret automatiskt?

 

 

 

 

Sedan vill man ha en bättre kontroll över MainWin och då är det AppController som gäller. Alltså en subclass till NSWindowController. En sådan klass har jag skrivit och har implementerat en massa metoder som init, dealloc, windowWillClose, windowWillMiniaturize. Inga av dessa metoder kallas utom init metoden.

 

 

 

 

Snälla! Nån som är duktigt som kan upplysa mig lite?

 

 

C#-programmering påminner mycket om Cocoa-programmering, men det finns några ganska stora skillnader i filosofi.

 

Ett tips är att börja med att gå igenom följande tutorial:

 

https://developer.apple.com/library/mac/#documentation/General/Conceptual/Mac101/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010611

Link to comment
Share on other sites

phenomen2277

Dåligt svar

 

C# is event-driven, ObjC is actiion/target binding language. Liknar mera MSs MFC/C++. Sedan använder de en terminologi som inte följer standarden. Som ex. delegates, categories

Link to comment
Share on other sites

phenomen2277

OK!

Nu börjar saker & ting klarna. Det räcker tydlingen inte att man implementerar delegate-metoderna i appdelegate eller appcontroller Man måste gå in i interface builder, högerklicka på det object som representerar klassen där metoderna är, sedan ska man dra ett streck från objektets delegate till det NSWindow man jobbar med.

 

 

Thank you!

Nu märker jag att här finns bara iWeb-developers!

Link to comment
Share on other sites

Dåligt svar

 

Det var tråkigt att du tycker det.

 

Länken är en väldigt bra genomgång av precis de grundläggande saker du frågade efter.

 

Sedan använder de en terminologi som inte följer standarden. Som ex. delegates, categories

 

Desto större anledning att läsa genomgången (eller någon annan liknande) för att verkligen få grepp om den grundläggande terminologin och mönstren.

Link to comment
Share on other sites

Thank you!

Nu märker jag att här finns bara iWeb-developers!

 

 

Med denna attityd är det inte så konstigt att vi mer erfarna Obj-C/Cocoa-utvecklare inte vill dela med oss av vår kunskap.

 

Ugglas svar tyckte jag inte alls var speciellt dåligt då han gav både en länk och påpekade att det fanns olikheter och likheter mellan språken.

 

Tycker du borde förfina ditt sätt att bemöta hjälpsamma forum-medlemmar eller så borde du sluta fråga om hjälp. På detta forum är vi hjälpsamma mot varandra och håller en trevlig ton.

 

Hoppas du tar denna tillrättavisning på rätt sätt och fortsätter vara aktiv på forumet och bidra till den bra stämningen som präglar detta forum.

 

 

/Lars

Link to comment
Share on other sites

phenomen2277

Om du läser mitt första inlägg, så borde du veta att jag inte har problem med ObjC, utan ville bara förstå hur allt detta drag & drop fungerar.

 

Så nåt intro i språket behöver jag inte.

Link to comment
Share on other sites

Om du läser mitt första inlägg, så borde du veta att jag inte har problem med ObjC, utan ville bara förstå hur allt detta drag & drop fungerar.

 

Så nåt intro i språket behöver jag inte.

 

Jag antar att du menar kopplingen mellan "drag & drop i interface builder" och dina metoder i din delegate? Det står hur detta fungerar i länken jag gav dig.

 

I den länken står också svar på din fråga hur MainMenu startas (det görs av ramverket eftersom det i projektes propertylist står att det är just MainMenu som skall startas).

 

Dokumentet innehåller inte intro till Objective-C, det innehåller intro till den grundläggande arkitekturen och tänket i Cocoa. Och eftersom du frågade om en av de allra mest grundläggande sakerna i Cocoa-programmering (hur man kopplar outlets och actions mellan GUIt och sina klasser) så trodde jag att du skulle ha nytta av ett dokument som beskriver just det.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...