Cocoa Kochbuch - .NET Framework

18
mitp Professional Cocoa Kochbuch von Ferhat Ayaz, Jörn Hameister, Erik Meißner 1. Auflage Cocoa Kochbuch – Ayaz / Hameister / Meißner schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Thematische Gliederung: Objektorientierte Programmierung mitp/bhv 2009 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 8266 5068 0 Inhaltsverzeichnis: Cocoa Kochbuch – Ayaz / Hameister / Meißner

Transcript of Cocoa Kochbuch - .NET Framework

mitp Professional

Cocoa Kochbuch

vonFerhat Ayaz, Jörn Hameister, Erik Meißner

1. Auflage

Cocoa Kochbuch – Ayaz / Hameister / Meißner

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

Thematische Gliederung:

Objektorientierte Programmierung

mitp/bhv 2009

Verlag C.H. Beck im Internet:www.beck.de

ISBN 978 3 8266 5068 0

Inhaltsverzeichnis: Cocoa Kochbuch – Ayaz / Hameister / Meißner

Zahlreiche Rezepte und Beispiele für den sofortigen Einsatz

Applikationen, Frameworks, XML, Internet, Kommunikation, Agenten

Persistenz, Xcode Hacks, PDF-Export, Drawings

Cocoa Kochbuch

9

Vorwort

Liebe Leserinnen und Leser,

dieses Buch beschäftigt sich mit der Cocoa-Programmierung unter Mac OS X. Essoll helfen, das Wissen aus dem Buch von Aaron Hillegass zu vertiefen und man-che offene Frage zu klären, das heißt, wir wollen einen Schritt weitergehen underklären, wie man weitermacht, wenn man die Grundlagen verstanden hat. Meistkommen ja recht schnell Fragen auf, wenn man die erste eigene Applikationerstellen will, die ein bisschen von der Trivial-Anwendung abweicht. Außerdem istes ja so, dass man seine tolle neue Applikation anderen Benutzern zur Verfügungstellen möchte. Diese Dinge werden wir versuchen im Folgenden zu erklären unddabei im Besonderen darauf eingehen, wie die Herangehensweise bei Cocoa ist.Das Besondere bei Cocoa ist nämlich: Sobald etwas kompliziert erscheint, machtman irgendetwas falsch und es gibt meist eine einfachere und elegantere Lösung.

Wir waren uns nicht sicher, welche Form dazu am besten geeignet ist, ein solchesBuch zu schreiben. Oft ist es ja so, dass man, nachdem man die Grundlagen ver-standen hat, keine seitenlangen Erklärungen mehr vorgesetzt bekommen möchte.Eigentlich ist es dann so, dass ein paar Stichworte und praktische Code-Schnipselmit kurzen Erklärungen reichen, die direkt verwendet werden können. Deshalbhaben wir uns für ein Rezeptbuch entschieden.

Wobei es so ist, dass in jedem Kapitel eine Beispielapplikation entwickelt wird, dieeine Reihe von Rezepten enthält. Jedes dieser Rezepte ist unabhängig von denanderen Rezepten verständlich. Auf diese Weise ist es möglich, das Buch als Nach-schlagewerk zu verwenden. Soll beispielsweise nur ein kleines Feature in der eige-nen Applikation ergänzt werden, reicht es aus, den Code-Schnipsel aus dementsprechenden Rezept anzusehen. Lauffähig sind die Beispielapplikationen inden Kapiteln allerdings nur, wenn alle Rezepte eines Kapitels durchgearbeitet wur-den.

Die Motivation, dieses Buch zu schreiben, ist bei uns drei Autoren eigentlich ähn-lich. Alle haben langjährige Erfahrung als Software-Entwickler und sind begeistertvon dem Framework, das uns Apple mit Cocoa zur Verfügung gestellt hat. Aberwir hatten alle drei unabhängig voneinander das Gefühl, dass man nach demLesen der Grundlagenbücher »alleine« gelassen wird. Diskussionen mit Neuein-steigern und Umsteigern unterstrichen diese Beobachtung. Auch in den einschlä-

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

Vorwort

10

gigen Internet-Foren tauchten mit schöner Regelmäßigkeit dieselben Fragen auf.Dies alles hat uns bewogen, dieses Buch zu schreiben.

Wir haben den Eindruck, dass man zu vielen Features nur wenige und wenig prak-tische Beispiele in der Dokumentation findet, von manchen Komponenten erfährtman nur durch Zufall. Außerdem ist es so, dass die Apple-Dokumentation in Eng-lisch verfasst ist und viele Leser sich doch bei einem deutschen Buch wohler füh-len. Zudem ist es so, dass die Apple-Dokumentation sehr umfangreich ist, manaber oft nur einen kleinen Teil benötigt, um beeindruckende Resultate zu erzielen.Wir wollen in diesem Buch versuchen, diese Fragen und offenen Punkte zu klä-ren.

Wir Autoren haben in Bezug auf den Mac und Cocoa eine völlig unterschiedlicheHerkunft. Wir entwickeln alle professionell Software und verdienen unser Gelddamit. Teilweise nur im Mac-Umfeld, teilweise auch in der Windows- und Unix-Welt. Obwohl die Mischung doch recht unterschiedlich ist, haben wir alle einesgemeinsam: den Spaß an der Einfachheit und Eleganz beim Programmieren aufdem Mac. Außerdem sind wir der Meinung, dass so eine Kombination von unter-schiedlichen Hintergründen einem Buch nur gut tun kann.

Abschließend möchten wir nicht wie sonst üblich eine Danksagung schreiben,sondern eine Entschuldigung. Als Erstes entschuldigen wir uns bei unseren Fami-lien dafür, dass unsere Zeit während des Schreibens sehr knapp war und sie oft zukurz gekommen sind. Außerdem möchten wir uns bei unseren Freunden undArbeitskollegen dafür entschuldigen, dass wir nicht verraten haben, dass wir einBuch schreiben. Natürlich möchten wir uns auch ganz herzlich bei Frau Schulzvon der Verlagsgruppe Hüthig-Jehle-Rehm entschuldigen, dass wir die Formatvor-lage nie so benutzt haben, wie es eigentlich gedacht war.

Viel Spaß beim Lesen ...

Erik, Ferhat und Jörn

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

11

Kapitel 1

Einleitung

In der Einleitung werden wir verschiedene Grundlagen beschreiben und einigegrundlegende Fragen beantworten, so dass die folgenden Kapitel einfacher zu ver-stehen sind und klar ist, was wir unter bestimmten Dingen verstehen.

Wir werden in diesem Kapitel folgende Dinge behandeln:

� Die Zielgruppe dieses Buches

� Warum wir die Form eines Rezeptbuches gewählt haben

� Was wir in dem Buch behandeln

� Wie das Buch aufgebaut ist

� Die Webseite zum Buch

� Die Voraussetzungen, Vereinbarungen und Begrifflichkeiten

1.1 Zielgruppe

Als Zielgruppe haben wir ganz klar den Programmierer vor Augen, der die Grund-lagen von Cocoa schon verstanden hat und jetzt den Schritt von einfachen Beispie-len zu professionell wirkenden Anwendungen gehen möchte. Wir werden diesenTyp von Programmierer im Folgenden als fortgeschrittenen Programmierer bezeich-nen. Es sollte ihm beispielsweise klar sein, wie er mit dem Interface Builder eineOberfläche bestehend aus NSButtons und NSTextFields erstellt und mit einerObjective-C-Klasse verknüpft.

1.2 Warum ein Rezeptbuch zu Cocoa?

Es gibt verschiedene Möglichkeiten, die Konzepte von Cocoa zu beschreiben. Wirhaben uns für ein Rezeptbuch entschieden, weil wir glauben, dass man so kurz,prägnant und verständlich beschreiben kann, wie ein bestimmtes Cocoa-Featurein eine bestehende Anwendung einzubauen ist. Wir finden, dass dies die besteLösung ist, um einen fortgeschrittenen Cocoa-Programmierer zu unterstützen.

Da wir aber vermeiden wollten, dass das Buch eine lose Sammlung von zusam-menhanglosen Rezepten auf dem Niveau von »Hello world!«-Beispielen ist, haben

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

Kapitel 1Einleitung

12

wir uns verschiedene Beispielanwendungen ausgedacht, von denen jede in einemeigenen Kapitel anhand von Rezepten beschrieben wird.

Wir versprechen uns davon, dass sich der Leser nicht bei jedem Rezept in einneues fachliches Thema einarbeiten muss, sondern sich voll auf Cocoa konzent-rieren kann.

Die Rezepte sind generell so gehalten, dass sie unabhängig von den anderenRezepten verständlich sind. Allerdings wird der Beispielcode nur dann lauffähigsein, wenn die vorangegangenen Rezepte des Kapitels auch vorhanden sind.

1.3 Inhalt des Buches

Wir werden im Buch folgende Themengebiete behandeln:

� AppKit� NSTableView

� NSOutlineView

� …

� Apple Frameworks� IKImageKit

� Adressbuch und iCal

� …

� Persistenz

� XML

� Core Data

� Kommunikation

� Internet Kommunikation

� Lokale Netzwerk-Kommunikation

� Xcode

Zu jedem dieser Themengebiete werden wir verschiedene Rezepte anbieten. Esliegt in der Natur der Dinge, dass es zu manchen Themengebieten mehr Rezeptegibt als zu anderen.

1.4 Aufbau des Buches

Das Buch gliedert sich in zwölf Kapitel. Nach diesem einleitenden Kapitel wird injedem weiteren Kapitel eine Beispielapplikation beschrieben. Kapitel 12 ist dabeieine Ausnahme, weil dort Rezepte zum Thema Xcode behandelt werden, für diekeine eigene Applikation erstellt wurde.

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

1.4Aufbau des Buches

13

Folgende Applikationen entstehen im Laufe des Buches:

� Eine ImageBrowser-Applikation zum Gruppieren von Bildern

� Eine AddressBook-Applikation zum Eintragen von Terminen

� Ein RSS-Reader zum Lesen von RSS-Nachrichten

� Eine Friend-of-a-Friend(FOAF)-Applikation, die sich mit XML beschäftigt

� Eine Applikation, die die Scripting Bridge benutzt, um zum Beispiel mit iPhoto zuarbeiten

� Ein Uploader, der sich mit FTP-Kommunikation beschäftigt

� Eine Bookmarks-Applikation zum Austausch von Bookmarks in lokalen Netzen

� Eine Applikation, die Screenshots vom Bildschirm macht und auf MobileMe hoch-lädt

� Ein einfaches Bugtracking-System, bei dem eine Applikation AppleScript-fähig ge-macht wird

� Eine Zeichenanwendung, die als Grundgerüst für DTP-Programme dienen kann

Die einzelnen Kapitel sind so aufgebaut, dass sie unabhängig voneinander sind.Allerdings ist es so, dass der Schwierigkeitsgrad der Applikationen im Laufe desBuches zunimmt. Das äußert sich nicht nur in den schwierigeren Themen, son-dern auch in den kürzeren Erklärungen. Beispielsweise wird im zweiten und drit-ten Kapitel noch ziemlich ausführlich erklärt, wo Bindings in Interface Buildereingetragen werden müssen. In den folgenden Kapiteln wird davon ausgegangen,dass man dies inzwischen gelernt hat.

Mit der Typographie verhält es sich ähnlich. Zu Beginn werden Begriffe wie Inter-face Builder, Library oder Inspector noch kursiv hervorgehoben, um zu betonen,dass es sich um etwas Neues handelt. Später wird dies nicht mehr getan, weil derLeser dann mit diesen Begriffen vertraut sein sollte. Es werden dafür andereDinge hervorgehoben, die in dem Kontext wichtig sind und beim Überfliegen desTextes hervorstechen sollen.

Bei dem Quellcode zu den Beispielapplikationen wurde die Fehlerbehandlungbewusst vernachlässigt, um die wesentlichen Dinge hervorzuheben. Wenn dieBeispiele und Code-Schnipsel in einer »produktiven« Anwendung eingesetzt wer-den sollen, muss die Fehlerbehandlung natürlich ergänzt werden.

Für die Oberflächen der Beispielapplikationen gilt Ähnliches. Teilweise wurdemehr Wert auf die Verständlichkeit als auf die Benutzerführung gelegt. In demDokument Introduction to Apple Human Interface Guidelines wird beschrieben, wieOberflächen schöner und intuitiver gestaltet werden.

Viele der Rezepte reißen manche Frameworks oder Technologien nur an. Dies sollals Anregung dienen, diese Themen weiter zu verfolgen und das eigene Wissenauszubauen. Beispielsweise enthält das ImageKit eine ganze Reihe von interessan-

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

Kapitel 1Einleitung

14

ten und nützlichen Möglichkeiten, um Bilder zu verarbeiten. Alleine zu diesemThema könnte man ein eigenes Buch schreiben.

1.5 Webseite zum Buch

Unter der folgenden Adresse gibt es eine Webseite zum Buch. Dort kann man dieCode-Beispiele zum Buch herunterladen.

1.6 Vereinbarungen und Begrifflichkeiten

Damit verständlich wird, was wir meinen, wenn wir beispielsweise von der Doku-mentenansicht schreiben, erklären wir im Folgenden, was wir unter bestimmtenBegriffen verstehen und wie wir sie benutzen werden. Dies werden wir anhandeines ersten sehr einfachen Rezepts erklären. Es geht in dem Rezept nur darum,den Leser mit den verwendeten Begriffen vertraut zu machen.

Beschreibung

In dem Rezept wird der Zusammenhang zwischen einem Controller und einer Viewdeutlich gemacht, das heißt, es wird auf das View-Controller-Pattern eingegangen.

In diesem Rezept geht es darum, zu verstehen, wie eine View und ein Controllerin Cocoa zusammenspielen. Außerdem wird erklärt, wie die View mit dem Inter-face Builder (IB) erstellt und wie ein Controller mit Objective-C implementiertwird.

Um das Konzept zu verdeutlichen, werden wir in diesem Rezept einen kleinenMultiplikationstrainer implementieren, mit dem man das kleine Einmaleins übenkann.

Abb. 1.1: Multiplikationstrainer

Nach dem Start von Xcode wird mit FILE|NEW PROJECT ((ª)+(Ü)+(N)) eine neueCocoa Application erstellt.

Hinweis

Webseiten zum Buch: http://www.it-fachportal.de/5068 und http://cocoapark.de/kochbuch

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

1.6Vereinbarungen und Begrifflichkeiten

15

Abb. 1.2: Erstellen einer neuen Cocoa-Applikation

Als Projektnamen wählt man beispielsweise Multiplikationstrainer und ein geeig-netes Verzeichnis, in dem man das Xcode-Projekt abspeichern möchte.

Nach dem Speichern erscheint das neue Projekt innerhalb von Xcode.

Abb. 1.3: Applikation in Xcode

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

Kapitel 1Einleitung

16

Abb. 1.4: Dokumentenfenster

Abb. 1.5: Library im Interface Builder

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

1.6Vereinbarungen und Begrifflichkeiten

17

Auf der linken Seite unter GROUPS & FILES und RESOURCES findet man die DateiMainMenu.xib. Mit einem Doppelklick auf diese Datei wird der Interface Builder(IB) gestartet. Mit diesem Werkzeug werden wir jetzt die View für unsere Applika-tion erstellen.

Nach dem Start des IB öffnet sich eine Reihe von Fenstern. Zum einen das Doku-mentenfenster, in dem wir die grafische Oberfläche erstellen werden. Dies ist inAbbildung 1.4 zu sehen.

Außerdem ist die Library zu sehen, in der man die verschiedenen Oberflächenele-mente und Controller findet (Abbildung 1.5). Welche Möglichkeiten die Librarybietet, werden wir an verschiedenen Rezepten in diesem Buch genauer erklären.

In Abbildung 1.6 ist das Hauptfenster zu sehen, das den Inhalt der XIB-Dateianzeigt.

Abb. 1.6: Das Hauptfenster mit der XIB-Datei

Normalerweise öffnet sich auch der Inspector. Falls dies nicht der Fall ist, lässt ersich auch manuell öffnen, indem man im Menü TOOLS den INSPECTOR auswählt((ª)+(Ü)+(I)).

Wichtig

Gerade bei der Arbeit zum Beispiel mit Zellen in einer NSTableView ist es sinn-voll, den View Mode im Hauptfenster umzustellen. So hat man die Möglichkeit,die Objekt-Hierarchie der Oberflächenkomponenten genauer zu untersuchen.

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

Kapitel 1Einleitung

18

Abb. 1.7: Toolbar-Leiste des INSPECTOR

Über die Toolbar lassen sich folgende Dinge bearbeiten:

� Attributes

� Effects

� Size

� Bindings

� Connections

� Identity

� AppleScript

Abb. 1.8: Erstellen der Oberfläche

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

1.6Vereinbarungen und Begrifflichkeiten

19

Welche Einstellungen genau gemacht werden können, wird im Laufe des Buchesdeutlich.Nachdem sich der Interface Builder mit seinem Hauptfenster, der Library,dem Inspector und dem Dokumentenfenster geöffnet hat, können wir mit demErstellen der View beginnen.

Die View des Multiplikationstrainers besteht aus vier Labels, einem TextField undeinem Button.

Als Erstes wird für jedes Label ein Label-Objekt mit gedrückter Maus-Taste in dasHauptfenster gezogen. Das heißt für Faktor1, das Multiplikationssymbol,Faktor2 und das Gleichheitszeichen. Danach wird das NSTextField erstellt undanschließend ein NSButton mit der Beschriftung OK. Abschließend wird allesgespeichert mit (Ü)+(S).

Nachdem wir wieder zurück zu Xcode gewechselt haben, kümmern wir uns umden Controller. Als Erstes legen wir eine neue Objective-C-Klasse mitFILE|NEW FILE... ((Ü)+(N)) an. Wichtig dabei ist, dass der Ordner CLASSES selek-tiert ist, damit die neue Klasse in diesem Ordner abgelegt wird.

In dem Dialogfenster wählen wir die Rubrik COCOA und als Template OBJECTIVE-CCLASS aus.

Abb. 1.9: Erstellen einer Objective-C-Klasse

Wichtig

Statt Faktor1 und Faktor2 einzutragen, sollten die Labels mit sinnvollen Zah-lenwerten vorbelegt werden. Eine elegantere Möglichkeit ist, dies in derMethode awakeFromNib zu tun.

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

Kapitel 1Einleitung

20

Als Namen für die neue Objective-C-Klasse wählen wir MultiplicationController.Nachdem wir FINISH angeklickt haben, wird eine Interface-Datei (Multiplication-Controller.h) und eine Implementierungsdatei (MultiplicationController.m)erzeugt.

Abb. 1.10: Erstellen einer Controller-Klasse

Nachdem die neue Controller-Klasse angelegt wurde, selektieren wir die Interface-Datei und deklarieren die Schnittstellen für den Controller.

Abb. 1.11: Header-Datei des Controllers

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

1.6Vereinbarungen und Begrifflichkeiten

21

Als Erstes deklarieren wir zwei IBOutlets, um die Multiplikationsfaktoren vomController aus setzen zu können. Zusätzlich ein IBOutlet, um das vom Benutzereingegebene Resultat auslesen zu können. Außerdem wird noch eine MethodeokClicked benötigt, um auf das Betätigen des Buttons reagieren zu können.

In der Implementierungsdatei wird die Methode okClicked folgendermaßenimplementiert:

Als Erstes werden die Werte aus dem NSTextFields ausgelesen. Danach wirdüberprüft, ob das eingegebene Ergebnis richtig ist. Wenn das der Fall ist, dannwird eine neue Aufgabe erstellt und das Eingabefeld wieder mit einem Leerstringbelegt. Außerdem wird die Hintergrundfarbe des NSTextFields wieder zurückge-setzt, die bei einer Falscheingabe auf Rot gesetzt wurde. Dies passiert im else-Zweig.

Nachdem wir jetzt die View erstellt und den Controller implementiert haben, müs-sen wir die beiden Komponenten noch verbinden. Deshalb wechseln wir wieder inden Interface Builder.

Wichtig

Anzumerken ist, dass IBOutlet und IBAction vom Interface Builder verwen-det werden, um das Binding zwischen View und Controller herzustellen.

#import "MultiplicationController.h"

@implementation MultiplicationController

-(IBAction)okClicked:(id)sender {

int parameter1 = [faktor1 intValue];

int parameter2 = [faktor2 intValue];

int intValue = [multiplicationResult intValue];

if(parameter1*parameter2==intValue) {

[multiplicationResult setBackgroundColor:[NSColor whiteColor]];

[faktor1 setIntValue:((random() % 100) + 1)];

[faktor2 setIntValue:((random() % 100) + 1)];

[multiplicationResult setStringValue:@""];

}

else {

[multiplicationResult setBackgroundColor:[NSColor redColor]];

}

}

@end

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

Kapitel 1Einleitung

22

Dort selektieren wir in der Library CONTROLLERS und ziehen mit gedrückter Maus-taste das blaue OBJECT in das Hauptfenster.

Abb. 1.12: Object erstellen

Danach selektieren wir das neue OBJECT und wechseln im Inspector zu IDENTITY

(das blaugraue i). Dort wird bei CLASS unser MultiplicationController einge-tragen. Wie man sieht, wurden alle IBOutlets und IBActions richtig erkannt,die zuvor im Controller definiert wurden (siehe Abbildung 1.13).

Jetzt müssen die IBOutlets und die IBAction noch mit den View-ElementenLabel, TextField und Button verbunden werden.

Um die IBOutlets mit der View zu verbinden, wird als Erstes der Multiplica-tionController im Hauptfenster selektiert. Danach wird die (ctrl)-Tastegedrückt und der Controller auf das erste Label gezogen. In dem nun erscheinen-den kleinen schwarzen Fenster (HeadUp-Display, HUD), wird faktor1 ausge-wählt. Mit dem Label faktor2 wird genauso verfahren. In gleicher Weise wird dasNSTextField verbunden (siehe Abbildung 1.14).

Der Button wird mit dem Controller verbunden, indem der Button im Dokumen-tenfenster selektiert und danach mit gedrückter (ctrl)-Taste auf den Multiplica-tionController gezogen wird. Im nun erscheinenden HUD wird die MethodeclickedOK der IBAction ausgewählt.

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

1.6Vereinbarungen und Begrifflichkeiten

23

Abb. 1.13: Inspector Identity

Abb. 1.14: Verbinden der Outlets mit der View

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068

Kapitel 1Einleitung

24

Abschließend wird alles mit (Ü)+(S) gespeichert und wieder in Xcode gewechselt.

In Xcode muss jetzt nur noch BUILD & GO angeklickt werden, um die Applikationzu starten.

Wenn die Applikation gestartet ist, dann sehen die Objekt-Verbindungen so auswie in Abbildung 1.15 gezeigt.

Abb. 1.15: Verbindungen zwischen View und Controller

Der obere Teil ist die View mit der Eingabemaske. Im unteren Teil befindet sichdas Controller-Objekt. Die Elemente in der View sind mit dem Controller-Objektüber die Methode intValue und setIntValue verbunden. Ein Klick auf dem But-ton ruft die Funktion doClicked auf.

Wichtig

Wird der MultiplicationController selektiert und im Inspector die RubrikCONNECTIONS ausgewählt, dann werden alle Verbindungen zwischen View undController angezeigt.

© des Titels »Cocoa Kochbuch« (ISBN 978-3-8266-5068-0) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/5068