Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

App-Entwicklung mit iOS Grundkurs 1: Meine erste eigene App

Textfelder

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Textfelder ähneln Labels, mit der Ausnahme, dass sie vom Benutzer bearbeitet werden können. Er kann also Texteingaben vornehmen. Dieser Film zeigt, wie Sie beim Erstellen einer iOS-App diese Eingabedaten aus einem Textfeld erfassen und verwenden.

Transkript

Eine der klassischen Funktionalitäten, die eine App bereitstellt, ist, dass Daten vom Benutzer entgegengenommen werden, die dann in irgendeiner Form verarbeitet werden. Das kann man sehr gut auch mit einer freien Texteingabe machen. Ich möchte hier Ihnen zeigen, wie Sie in einem Textfeld Daten vom Benutzer entgegennehmen können, beispielsweise irgendwelche Texte, und diese Texte dann weiterverarbeiten. Im einfachsten Fall können Sie in einem Label angezeigt werden. Da braucht man dann noch keine große Funktionalität im SWIFT-Code, im Controller, sondern man nimmt einfach die Benutzereingabe und zeigt sie an einer anderen Stelle wieder an. Sehr oft wird das noch mit einer Schaltfläche gekoppelt, einem Button, um die Eingabe abzuschließen. Ich habe also hier jetzt mein Storyboard und hier möchte ich eine Texteingabe schaffen. Dazu kann ich hier zum Beispiel in diesem Filter einfach mal nach "Text" suchen und dann erhalten Sie hier mein "Text Field". Sie erhalten auch eine sogenannte "Text View". Der Unterschied zwischen beiden Komponenten ist, dass ein Text Field für eine einzeilige Eingabe gedacht ist und eine Text View in der Regel für mehrere Textzeilen. Das ist so eine freie Texteingabe über gegebenenfalls auch mehrere Zeilen hinweg halt. Ich ziehe also dieses Textfeld hier in meine View und positioniere das so ein bisschen. Die Größe kann ich entweder hier festlegen über diesen "Size Inspector" oder ich ziehe das hier mit der Maus so weit, dass es über den gesamten Bereich der App sich erstreckt. Die Hilfslinien sind da auch sehr nützlich, um wirklich diese Ränder zu erwischen. Des Weiteren möchte ich jetzt noch einen Button haben. Und auch den ziehe ich hier hinein. Und ich möchte noch ein Label haben. Nun müssen diese Komponenten im Storyboard mit dem Controller verknüpft werden, genau genommen brauche ich Variablen im Controller, die mit eben diesen Komponenten hier in irgendeiner Verbindung stehen. Es muss eine Connection aufgebaut werden. Das kann man auf verschiedene Weise machen. Und eine Möglichkeit ist, dass wir uns das Storyboard und den Controller so nebeneinander anordnen und dann hier einfach die Verbindung reinziehen in den Controller. Dabei gibt es jetzt natürlich unterschiedliche Arten der Verbindung. Das Label soll verändert werden. Das hier ist dann eine Outlet-Verbindung, Outlet: Steckdose übersetzt, ein bisschen flapsig. Der Button wird hingegen eine Action-Methode sein, das heißt, auch hier kann ich natürlich hier rüber ziehen und dann gebe ich dieser Methode irgendeinen Namen, "didTabButton" zum Beispiel. Und da das eben eine Action-Methode werden soll, müssen wir hier natürlich auf "Action" schalten. Und dann können wir mit "Connect" die Verbindung schaffen, es wird eine Action-Methode generiert. Beachten Sie, dass die außerhalb der anderen Methoden stehen muss, also nicht innerhalb dieser geschweiften Klammern von der "viewDidLoad" oder auch der anderen Methode auftauchen darf. Aber das haben wir jetzt gemacht. Sie sehen auch hier, die Verbindungen sind ganz offensichtlich aufgebaut. Jetzt haben wir noch das Textfeld. Auch das ziehen wir einfach hier rüber, geben irgendwo hier eine Verbindungsvariable an. Der entscheidende Punkt ist: Ist das jetzt eine Action oder ist das eine Outlet? Es wird eine Outlet sein, denn es ist keine Methode, die hier generiert werden soll für dieses Textfeld, sondern es soll eine Eigenschaft des Textfeldes genommen werden, um über die Methode, die mit dem Button ausgelöst wird, eine andere Eigenschaft zu ändern, sprich die Texteigenschaft des Labels. Ich muss hier einen Namen vergeben, "mein TextField" oder "mein Textfeld", vollkommen gleichgültig, wie wir das nennen. Und wir bestätigen und "Connect". Sie sehen auch hier, der "Type" ist jetzt ein "UITextField", was sich natürlich hier auch in der Syntax von SWIFT wieder äußert. Hier haben wir ein "UILabel", hier haben wir ein "UITextField". Und damit stehen auch diese Variablen zur Verfügung. Auch hier ist eine Verbindung offensichtlich aufgebaut zu dem Objekt hier in der View. So, modifizieren wir noch ein bisschen die Oberfläche. Das ist dieser Button, kriegt eine andere Beschriftung, sagen wir mal "Klick" oder so, und das Label möchte ich komplett leeren, damit es nicht beim Start diesen Text "Label" anzeigt. Wir haben also erstmal ein unsichtbares Label. Ansonsten kann ich jetzt hier in meiner Action-Methode die Werte entgegennehmen, die im Label stehen. Dazu muss ich nichts weiter tun, als mein Textfeld anzusprechen. Dann mache ich einen Punkt und dann habe ich die Eigenschaft "Text" zur Verfügung. Und da wird das drinstehen, was ein Anwender in diesem Textfeld eingibt. Nun möchte ich das direkt auch wieder ausgeben. Ganz banal könnte ich folgendermaßen vorgehen. Ich kann nämlich mein Label nennen "text = meinTextField.text". Das ist die einfachste Variante, das funktioniert auch. Das können wir uns direkt mal ansehen. Ich trage hier etwas ein, das heißt, ich klicke hier rein, löse den Button aus und nichts funktioniert offensichtlich. Stimmt nicht, es hat funktioniert. Wir haben einen Text entgegengenommen und in das Label geschrieben. Nur das Label ist nicht groß genug gewesen, denn wenn wir das Label mal selektieren hier und uns im Inspektor ansehen, wie groß dieses Label ist, dann kann es sein, dass hier diese Höhe eben auf "0" oder sogar einem Minuswert steht. Das kommt drauf an, was bei dem Entfernen des Textes passiert ist. Sie müssen darauf achten, dass die Höhe jetzt zumindest so groß ist, dass dieser Text auch sichtbar wird. Gehen wir mal auf "30". Und ich lege hier auch mal die Breite manuell fest, dass man zumindest ein bisschen was sieht. Das kann man auch mit der Maus machen. So, nochmal laufen lassen und Sie sehen, es geht durchaus. Ich möchte jetzt allerdings meine Eingabe hier ein wenig modifizieren. Ich kommentiere diesen Bereich mal aus. Ich mache eine neue Zeile und möchte hier eine Variable anlegen, genauer genommen nicht eine Variable, sogar eine Konstante. Es gibt ein Schlüsselwort in SWIFT, das heißt "let". Wenn man eine Variable anlegt, deklariert man diese hier mit "wahr". Und wenn wir eine Variable haben wollen, deren Wert sich nicht mehr ändert, also eine Konstante, geht man mit "let" in die Deklaration hinein. Und ich deklariere sie hier, oder den Bezeichner, "name" oder Name, und der weise ich dann den Wert des Textfeldes zu. Nun habe ich ein Problem. Ganz offensichtlich kriege ich hier eine Fehlermeldung. Die verschwindet, wenn ich hier ein Ausrufezeichen hinsetze, das heißt, ich kann ja nicht garantieren, dass diese Variable "name" tatsächlich einen Wert zugewiesen bekommt. Allerdings sichere ich über dieses Ausrufezeichen, ein sogenanntes Optional, was ich hier deklariere, zu, dass da auch wirklich ein Wert drinstehen wird. Es ist ja so, dass zumindest ein Leerstring von diesem Texteingabefeld übergeben wird. Von daher wird der Compiler es schlucken, allerdings wird er hier eine Warning bringen, eine Warning, dass diese Variable "name" hier noch nicht benutzt wurde. Ich könnte trotzdem übersetzen, aber es ist natürlich nutzlos. Aber ich kann die jetzt meinem Label natürlich zuweisen. Nun bekomme ich hier einen String zugewiesen und das kann ich direkt hier diesem Text zuweisen. Woher weiß SWIFT, dass es ein String ist? Na ja, wir haben hier eine implizite Deklaration, implizit in Bezug auf den Datentyp. SWIFT ist nicht streng typisiert, sondern kann auch deklarativ erfahren, was für einen Datentyp man hat. In vielen strengeren Sprachen, so wie JAVA oder auch C#, C, C++, ist das so einfach nicht möglich. Zumindest in den früheren Versionen war es nicht möglich. Auch hier weichen diese Sprachen immer mehr auf. Das heißt, aus der Tatsache, dass ich hier einen String bekomme von dem Textfield, wurde implizit der Typ dieser Variable als String festgelegt und jetzt kann ich ihn zuweisen. Nun fragen Sie sich garantiert: "Warum diesen Umstand?" Nun ja, ich kann jetzt beispielsweise hier einen String notieren und die Variable dort hineinschreiben, und zwar mit einer ganz bestimmten Syntax. Ich schreibe hier irgendeinen Text und jetzt würde "Hallo name" ausgegeben werden, ziemlich unsinnig. Aber sobald ich hier einen Backslash notiere und in Klammern diese Variable setze, dann wird die im String geparst, also "Backslash" und diesen Variablennamen in Klammern. Das ist etwas, was man zum Beispiel auch aus PHP kennt, die Möglichkeit, einen String mit Variablen zu durchsetzen, die dann aber zur Laufzeit ausgebildet werden. Und wenn wir jetzt dieses Beispiel, diese App nochmal laufen lassen, dann wird die Ausgabe im Label sich aus diesem fest vorgegebenen String und der Benutzereingabe zusammensetzen.

App-Entwicklung mit iOS Grundkurs 1: Meine erste eigene App

Ihr Einstieg ohne Vorwissen: Unternehmen Sie die ersten Schritte zur eigenen iOS-App.

2 Std. 8 min (21 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:05.05.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!