PyObjC: hoe?!

Kan iemand mij vertellen hoe ik een Cocoa-Python-programma schrijf … ? Ik weet dat dit nogal een open vraag is, maar lees even verder, dan volgen wat meer details van m'n probleem :)

Vooropgesteld: ik ben maar een amateur-autodidact die (redelijk) kan programmeren in Python en in AppleScript Studio (en nog wat meer zoals Basic en JavaScript), maar ik heb nooit formeel programmeren geleerd. Hierdoor mis ik volgens mij een heleboel kennis die door de gemiddelde documentatie als gegeven aangenomen wordt.

Wat ik hier specifiek wil weten, maar nergens kan vinden, is hoe ik nou eigenlijk eigenschappen aan kan spreken van dingen die ik op een venster plant. Bijvoorbeeld: als ik een Cocoa-Python project heb, en dan op een venster een check box (NSButton) neerzet, hoe verbind ik dan code aan dat ding zodat ik (om maar wat te noemen) uit kan lezen of de check box aangevinkt is of niet?

Het enige dat ik nu heb is een venster zonder code, en wat Python-bestanden in het project waar standaardcode in staat (waarbij ik er geen zak van snap waarvoor het nodig is of wat het überhaupt doet), van het soort:

[code:1:ee44008b5a]class stom_rot_programmaDocument(NSDocument):
def init(self):
self = super(stom_rot_programmaDocument, self).init()
# initialization code
return self

def windowNibName(self):
    return u"stom_rot_programmaDocument"[/code:1:ee44008b5a]

enzovoort.

Ik kom er absoluut niet uit met de introductie van Apple, deels omdat die voor Tiger is en Xcode/Interface Builder veranderd zijn sindsdien, en deels omdat die intro ervanuit lijkt te gaan dat je Objective C kent (ik kan het [i:ee44008b5a]her[/i:ee44008b5a]kennen, maar daarmee houdt het zo’n beetje op). Verder zoeken naar informatie op het Internet schiet ook niet op — ik kan nergens een pagina vinden die gericht is op iemand die níet al weet hoe het allemaal werkt :frowning:

Ik zou m’n programma’s ook in AppleScript Studio kunnen blijven schrijven, maar dat wil ik nou net niet meer omdat dat zo traag loopt. Wat ik nu wil maken leek het me een goed begin: een eenvoudig programma in Python, om van daaruit verder te leren — maar op het moment zit ik verschrikkelijk gefrustreerd te zijn omdat ik iets heel eenvoudigs wil doen en ik er zelfs maar niet aan kan beginnen omdat ik nergens antwoord lijk te kunnen krijgen op elementaire vragen …

[quote:0ccd9e0e33="Jakko"]ik kan nergens een pagina vinden die gericht is op iemand die níet al weet hoe het allemaal werkt[/quote:0ccd9e0e33] Misschien heb je iets aan de [url=http://www.cocoalab.com/BecomeAnXcoder.pdf]Become an Xcoder[/url] tutorial. [quote:0ccd9e0e33][size=9:0ccd9e0e33]Apple provides you with all the tools you need to create great Cocoa applications, for free. This set of tools, known under the name Xcode, comes with Mac OS X, or you can download it from the developer section on Apple's website.

Several good books on programming for the Mac exist, but they assume that you already have some programming experience. This book doesn’t. It teaches you the basics of programming, in particular Objective-C programming, using Xcode. After some 5 chapters, you will be able to create a basic program without a Graphical User Interface (GUI). After a few more chapters, you will know how to create simple programs with a GUI. When you have finished this booklet, you will be ready for the above-mentioned more advanced books. You will have to study those too, because there is a lot to learn. For now though, don’t worry because this book takes it easy.[/size:0ccd9e0e33][/quote:0ccd9e0e33]

De verbinding tussen de code en je GUI maak je met Interface builder via 'bindings'. De website waar je naar linkt legt dat ook uit (bijna onderaan) Het kan eventueel ook via code, maar dat is minder handig, zeker als je er nog niets over weet. Ik raad je sterk aan om wat meer over bindings te lezen, bijvoorbeeld [url=http://www.cs.usfca.edu/~jbovet/pyobjc/tutorial/tutorial.html]hier[/url]. Succes!

[quote:a53c01e240="Pieterr"]Misschien heb je iets aan de [url=http://www.cocoalab.com/BecomeAnXcoder.pdf]Become an Xcoder[/url] tutorial. [/quote:a53c01e240] Bedankt, die ga ik zeker eens lezen!

[quote:a53c01e240=“koen”]De verbinding tussen de code en je GUI maak je met Interface builder via ‘bindings’. De website waar je naar linkt legt dat ook uit (bijna onderaan)[/quote:a53c01e240]
Bindings waren me al bekend (ik heb ooit geprobeerd Java/Cocoa te doen, maar heb dat opgegeven toen ik AppleScript Studio ontdekte) — maar hier is het probleem dat dat in de huidige versie van Interface Builder niet meer gaat zoals het daar aangegeven wordt, want het hele instantiaten (is dat Nederlands? :)) kan niet meer zoals daar beschreven. Maar hoe wel? Al sla je me dood …