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

First Responder

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
First Responder sind die Objekte, die als erste auf Ereignisse in der iOS App-Entwicklung reagieren. Dieser Film erklärt, wie die First Responder arbeiten, wie man sie Objekten zuweist und wie man sie benutzt, um Tastaturereignisse in Apps zu behandeln.

Transkript

Sie sehen, dass ich hier eine kleine iOS-Applikation habe, bei der ich in einem Textfeld einen Begriff eingeben kann, auf einen Button klicke und dann dieser Text in einem Label angezeigt wird. Der entscheidende Punkt ist, dass ich bei einem Klick in das Textfeld hier eine Tastatur sehe, eine softwaresimulierte Tastatur oder auch nicht. Das heißt, ob diese Tastatur hier auftaucht oder nicht, ist jetzt nicht so eindeutig. Das hängt an dem Simulator und natürlich in der Realität auch an dem tatsächlichen Gerät, an dem Betriebssystem et cetera. Insbesondere verschwindet diese Tastatur hier nicht , auch wenn ich auf diesen Button hier klicke. Oder möglicherweise verschwindet sie, wenn ich hier in dieses Textfeld hineinklicke und sie aber haben möchte. Man kann hier in Xcode über "Hardware" das Auftauchen des Keyboards steuern. Es gibt da auch einen Tastaturcode, das sehen Sie hier. Genauso wie Sie hier zum Beispiel auch den "Home"-Button simulieren können und ähnliche Dinge. Aber mich stört dieses zufällige Auftauchen dieser Tastatur. Und wir wollen uns in diesem Video jetzt ansehen, wie man dieses scheinbar zufällige Auftauchen gezielt auslösen kann. Das heißt, diese Tastatur soll auftauchen, wenn ich sie wirklich brauche und soll verschwinden, wenn ich sie nicht mehr brauche. Das Konzept, was jetzt hier unter iOS zur Verfügung steht, nennt sich "First Responders". Es hat damit zu tun, welche Komponente der Oberfläche den Fokus hat und was dann passieren soll. Um hier eine Steuerung vorzunehmen, werden wir in den Code verzweigen. Sie sehen hier, dass es hier einen Code gibt, bei dem die Eingabe in einem Textfeld in eine Variable gespeichert und einem Label zugeordnet wird. Also, es geht um dieses Textfeld, diesen Button und dieses Label, was keinen Vorgabetext hat und dadurch hier nicht sichtbar ist, aber es ist selbstverständlich sichtbar, wenn man hier den Navigator und dort die View anschaut und die Hierarchie der View. Und da ist dann das Label. Nun lassen Sie uns mal überlegen, wann diese Tastatur verschwinden soll. Angenommen, sie ist da. Es ist wohl offensichtlich dann, wenn der Anwender hier in das Textfeld etwas eingegeben hat und auf den Button klickt. Und hier ist der Code, der ausgelöst wird, wenn dieser Button angeklickt, angetippt wurde. Das heißt, es wäre sinnvoll an der Stelle zu sagen: "Tastatur verschwinde." Nun kann ich die Tastatur, diese Softwaretastatur, nicht direkt ansprechen, aber es gibt eben dieses besagte Konzept in iOS, First Responders. Ich schreibe mal hier in dieser Methode den Namen von meinem Textfeld hin, mache einen Punkt und gebe "resign" -- oder fange zumindest an -- hier ein und löse dann mit einem Doppelklick die Vervollständigung aus. Und da steht die Methode "resignFirstResponder". Damit nehme ich dieses Konzept des Fokus auf die Komponente weg und damit würde dann auch die Tastatur verschwinden, weil das Textfeld jetzt nicht mehr als Empfänger dieser aktuellen Events sozusagen eingerichtet ist im System. Führen wir diese App jetzt mal wieder aus. Ich klicke hier hinein und die Tastatur taucht auf. Ich schreibe irgendetwas dahin, ich betätige den Button und die Tastatur verschwindet, etwas, was wir vorher, wenn Sie sich erinnern, nicht gehabt haben. Man kann übrigens vollkommen analog auch das Keyboard auftauchen lassen, wenn man hier statt "resign" "become" hinschreibt, was in diesem Fall natürlich keinen Sinn machen würde, denn wenn der Button betätigt wird, soll die Tastatur nicht auftauchen, aber grundsätzlich in einer anderen Situation könnte man darüber auch eine Tastatur auftauchen lassen, genauer genommen wird damit ein Objekt zum First Responder. Und die Folgereaktion ist dann, dass die Tastatur auftaucht. Nun ist dieser Ansatz, um zum Beispiel so eine Softwaretastatur verschwinden zu lassen, nicht wirklich universell. Es gibt die Möglichkeit, auf einer globaleren Ebene Ereignisse zu behandeln, die sagen: "Es ist alles erledigt, was wir machen wollen", und so eine Art Grundzustand der App wiederherzustellen. Dazu brauchen wir eine weitere Methode, eine weitere Methode, die sagt: "Ich reagiere jetzt auf alles, was keine Eingabe in ein Textfeld notwendig macht", und dann kann ich die Tastatur ja verschwinden lassen. Was ich haben möchte, ist eine spezielle Built-in-Funktion von iOS, die nennt sich "TouchesBegan". Ich vervollständige die mit einem Doppelklick und werde jetzt hier spezifischen Code notieren, der mir dieses besagte Problem lösen wird. Dass diese Methode zur Verfügung steht, das liegt wirklich an iOS, ist eine Built-in-Funktionalität, und deswegen kann ich sie hier direkt in dem Controller benutzen. Und was wir jetzt machen wollen, ist, zu sagen: "Ich bin fertig." Ich bin fertig mit Eingaben in allen Textfeldern, die in meiner Oberfläche zu sehen sind, das heißt, ich werde auch nicht gezielt ein einziges Textfeld ansprechen, sondern das übergeordnete Objekt, und das ist meine View. Um das zu sehen, schauen wir uns die Hierarchie der View mal an. Sie sehen hier, dass es von der View eine Hierarchie gibt, in der dann als untergeordnete Objekte das Label, der Button, aber auch alle Textfelder auftauchen werden. Und die View selbst ist hier das übergeordnete Objekt. Es wäre jetzt sehr schön, wenn wir diese View direkt ansprechen können. Und das können wir machen. Öffnen wir wieder den Controller. In meiner View Controller-Klasse gibt es eine Built-in-Property, eine Built-in-Eigenschaft, mit der wir arbeiten können. Das liegt daran, dass wir hier eine Subklasse von "UIViewController" haben. Es gibt ein Objekt, ein Built-in-Objekt mit Namen "View". Und per Punktnotation können wir die Methode "endEditing" aufrufen und mit einem Boolean-Wert das erzwingen, das Ende der Editierung der Bearbeitung. Was haben wir damit erreicht? Nun, wir haben für alle Bestandteile der Apps mit Ausnahme des Textfeldes ein Event definiert, das die Editierung von Textfeldern beendet und damit verschwindet auch die Softwaretastatur. Das heißt, nicht nur, wenn man die Schaltfläche anklickt, wird diese Softwaretastatur verschwinden, sondern auch wenn ich hier beispielsweise in einem anderen Bestandteil der App klicke oder mit den Fingern tippe. Wir haben also dieses First-Responder-Konzept, womit man sozusagen den Fokus auf eine bestimmte Komponente legt, die dann auf bestimmte Ereignisse reagiert und damit auch Default-Verhaltensweisen wie das Auftauchen einer Tastatur auslöst. Wir haben aber auch die Möglichkeit, über das View-Objekt gezielt die Editierung von Textfeldern, von allen enthaltenen Textfeldern in der View, zu beenden und damit automatisch auch Dinge wie diese Softwaretastatur verschwinden zu lassen.

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!