Programmieren mit Swift - Für macOS und iOS
Programmieren mit Swift - Für macOS und iOS
Die Oberfläche

Wahrscheinlich ist der Rest für Sie inzwischen schon Routine. Erstellen Sie im Interface Builder ein Fenster mit den gleichen Steuerelemente, die Sie auch schon in der Klassendefinition des Controllers verwendet haben. Zwei NSCombBox für die Auswahl, ein NSTextField auf die Ausgabe der Entfernung und einen Button, um die Action der calculateDistance-Methode auszuführen.
stacks_image_AD09697F-7CC0-4357-96C7-3EBF7FC65DBF
Ziehen Sie als nächstes eine NSObjekt aus der Bibliothek der Steuerelemente auf das Dokumentenfenster des Interface Builders. Ändern Sie mit dem Inspector die Klassenidentität zu MyController. Auf diese Art haben Sie eine Instanz der Controller-Klasse erzeugt, die nach dem Start der Anwendung zur Verfügung steht.
stacks_image_5BD068EA-A522-4952-A527-5C59D7DFD264
stacks_image_4A8EE430-95CA-4F98-AF04-382C19F0EA78
Zum Abschluss müssen noch die Verbindungen zu den Steuerelementen gemacht werden. Wechseln Sie dazu in die Connections-Ansicht des Interface Builder. Beachten Sie dabei, dass die Klasseninstanz im Dokumentenfenster weiterhin markiert bleibt.

Sind auch die Verbindungen gemacht, sollten Sie ihre Arbeit speichern und testen.
stacks_image_E3077164-3960-46D6-BB6D-13A5EDE65F4C
Zu guter Letzt noch eine kleine Liste mit Städten, die Sie in ihrer Anwendung verwenden können, falls Sie mit dem Geo Converter keine eigene Koordinaten ermitteln wollen.
aCity = [[City alloc]initWithValues:@"Fürstenberg":13.1674628105466:53.1915774026942];
[cityArray addObject:aCity];
[aCity release];

aCity = [[City alloc]initWithValues:
@"Schalksmühle":7.55735388770204:51.2586326002943];
[cityArray addObject:aCity];
[aCity release];

aCity = [[City alloc]initWithValues:
@"Warstein":8.2960831356548:51.4565752244487];
[cityArray addObject:aCity];
[aCity release];

aCity = [[City alloc]initWithValues:
@"Bibertal":10.2012115239625:48.3989340288712];
[cityArray addObject:aCity];
[aCity release];