Programmieren mit Swift - Für macOS und iOS
Programmieren mit Swift - Für macOS und iOS
Hallo Welt, Teil 2

Wenn der Inspector in der Ansicht Attributes aktiviert ist, zeigt er Ihnen immer Eigenschaften und Informationen zu dem aktuell ausgewähltem Objekt an. Das ist die erste Ansicht, von denen der Inspector insgesamt sechs hat.
Attributes, Effects, Size, Bindings, Connections und Identity.
stacks_image_E5FF9356-E4A8-43BF-A830-58DC4AF83EF7
Probieren Sie es aus, indem Sie im Programmfenster auf die Titelzeile oder auf den Fensterinhalt klicken. Der Inspector wird sich anpassen und die jeweils zugehörigen Attribute anzeigen. Klicken Sie abschließend wieder auf die Titelzeile und ändern Sie die Eigenschaft Title im Inspector von „HalloWelt“ zu „Mein erstes Programm“.
stacks_image_DD3F4618-CE50-4BEC-9992-AF4BF5263351
Ein weiteres sehr wichtiges Fenster, das sich mit dem Interface Builder geöffnet hat, ist die Steuerelemente-Bibliothek (Library). Dort finden Sie Steuerelemente wie Buttons oder Textfelder, die Sie sicher schon aus anderen Programmen kennen. Aus dieser Bibliothek können sie Elemente in das Programmfenster Ihrer Anwendung hineinziehen.
stacks_image_F3A78004-8AF1-4941-802E-B056F719D981
Um ein Objekt aus der Bibliothek in das Programmfenster zu bekommen, ziehen Sie es einfach mit gedrückter Maustaste herüber.
Leider gibt es in der Bibliothek unzählige Steuerelemente und es ist schwer, etwas zu finden, wenn man nicht weiss, wo man suchen muss und wie das zugehörige Symbol aussieht. Abhilfe schafft das Suchfeld am unteren Rand des Fensters. Geben sie dort „Button“ ein und es werden nur noch Steuerelemente von diesem Typ angezeigt.
stacks_image_3F36DB53-5C2E-462D-994B-3AA946FAC6E9
Suchen Sie in der Bibliothek nach einem Button (NSButton - Push Button) und ziehen Sie ein Objekt in das Programmfenster. Wiederholen Sie diesen Vorgang für ein Objekt vom Typ Label (NSTextField - Label).

Wenn Sie Steuerelemente im Programmfenster verschieben oder skalieren, werden Ihnen sicherlich schnell die Hilfslinien auffallen. Nutzen Sie diese! Sie sind nicht nur eine Erleichterung beim Layout, sondern sie sorgen auch dafür, dass Sie die von Apple vorgegebenen Designrichtlinien einhalten können. Wenn Sie ein grafisches Objekt markiert haben, erscheinen an den Rändern auch immer kleine Punkte, mit denen Sie das Objekt skalieren können. Verbreitern Sie das Label, damit ein längerer Text als nur „Label“ hinein passt. Verändern Sie ausserdem den Text des Button mit Hilfe des Inspectors und verkleinern Sie Ihr Programmfenster, in dem Sie in die untere rechte Ecke klicken und das Fenster zusammenschieben. Am Ende sollte Ihr Fenster in etwa so aussehen:
stacks_image_FD213DFA-10E3-49B0-AD43-BC4330C95E5C
Wie zuvor erwähnt, benötigt jede Cocoa Anwendung einen Controller, der die Kommunikation zwischen grafischer Oberfläche und Programm steuert. Zwar haben Sie bereits den Controller programmiert, bisher existiert er aber lediglich als Klasse. Um daraus ein wirklich benutzbares Objekt zu machen, ist es nötig, eine Instanz dieser Klasse zu erzeugen. Das ist jetzt ebenfalls eine Aufgabe des Interface Builder.

Ziehen sie ein NSObject, das ist ein Symbol mit einem blauen Würfel, aus der Bibliothek auf das Hauptfenster des Interface Builder.
stacks_image_9832E4AD-B800-4341-ADB5-2AD7D8121AA1
Wenn Sie jetzt die Anwendung ausführen würden, würde beim Start automatisch eine neue Instanz von NSObjekt erzeugt. Damit können Sie zwar noch nicht viel anfangen, aber Sie sind auf dem richtigen Weg.
Markieren Sie das Würfelsymbol, falls sie es noch nicht getan haben, und wechseln Sie im Inspector auf die Gruppe Identity. Im Feld Class der Class Identity ändern Sie den Namen auf MyController.
stacks_image_574A16AE-EF91-43C9-AF51-D52805979757
Schon nachdem Sie die ersten Zeichen eingegeben haben, wird Ihnen der Inspector diesen Klassennamen vorschlagen. Das ist ein sicheres Zeichen dafür, dass der Interface Builder mit Xcode synchronisiert ist. Nach der Änderung trägt auch das Würfelsymbol im Hauptfenster eine neue Bezeichnung.

Jetzt wird beim Programmstart eine Instanz Ihrer Controller-Klasse erzeugt.

Als abschließenden Schritt müssen die Action und Outlet, die zuvor im Code definiert wurden, mit Steuerelementen im Programmfenster verbunden werden. Das funktioniert im Interface Builder auf eine recht eigentümliche Art und Weise. Wechseln Sie zunächst in die Gruppe Connections des Inspectors. Sie werden Ihre Bezeichnungen für die Action und das Outlet dort wiederfinden.
stacks_image_5B246E06-B9EE-41C7-9EDB-275AC93957E8
Sehen Sie dort nichts, haben Sie möglicherweise die Dateien in Xcode nicht ordnungsgemäß gespeichert. Das können Sie aber jederzeit nachholen.

Von besonderer Wichtigkeit sind die kleinen Kreise rechts neben den Bezeichnungen. Wenn Sie dort hinein klicken, können sie bei gehaltener Maustaste Verbindungslinien zu den Steuerelementen zeichnen. Verbinden Sie die clickMe-Action mit dem Button, und das Outlet outputText mit dem Label im Programmfenster. Sie müssen nur einen Linie bis zu dem jeweiligen Steuerelement ziehen und anschließend die Maustaste loslassen. Xcode wird Ihnen immer anzeigen, ob eine Verbindung möglich ist und die Verbindung wird auch kurz Aufblinken, wenn sie erfolgreich hergestellt wurde. Speichern Sie anschliessend die Änderungen die Sie im Interface Builder vorgenommen haben.
stacks_image_0E03387A-A810-42B5-BABA-AA8FE757739A
stacks_image_DF70CF83-860A-4C33-9D5C-A17889CF8893
Damit ist Ihre erste Cocoa Anwendung nun tatsächlich fertig. Klicken sie in Xcode auf Build and Run, um den Übersetzungsvorgang zu starten und das Programm auszuführen. Klicken Sie auf die Schaltfläche und prüfen Sie, ob der Text sich ändert.
stacks_image_E922A06D-321D-4562-B126-B4AEA35254BE