iPhone SDK: Text Eingabe und Verarbeitung

Januar 03, 2010 - von: Patrick

Nach dem Hello World Tutorial für das iPhone behandeln wir jetzt das Thema Texteingaben und die Verarbeitung von Texten mit Xcode. Die Eingabe von Text bzw. die Verarbeitung dieses Text ist ein sehr wichtiges Basiselement da nahezu in jeder Applikation Nutzereingaben gemacht und gespeichert werden muss.

Zu Anfang müssen Sie ein neues Projekt starten und benennen. Anschließend müssen Sie sich um die benötigten Steuerelemente kümmern. Im folgenden Beispiel verwenden wir hier einen Button zum Speichern und ein Text View für die Nutzereingaben. Dieses machen wir wie gewohnt über den Interface Builder Resources -> MainWindows.xib

Ziehen Sie jetzt über die Library die oben genannten Elemente auf das Window. Den Button finden Sie unter Library -> Inputs & Values -> Round Rect Button und das Text View unter Library -> Data Views -> Text View. Nachdem Sie diese Elemente auf dem Windows plaziert haben sehen Sie das im Text View das bekannten Lorem Ipsum zu sehen ist, da wir dieses Element nicht als Textanzeige sondern als Texteingabefeld definieren wollen löschen Sie den Text und ändern Sie gegenbenenfalls die Hintergrund des Views da es sonst nicht auf den ersten Blick zu sehen ist. Die Hintergrundfarbe ändern Sie über den Inspector.

Haben Sie alle Elemente installiert wechseln Sie vom Interface Builder zurück zu xcode und öffnen Sie die Klasse/Header TexteingabeAppDelegate.h. Der Name der Klasse kann übrigens abweichen da dieser vom Projektnamen abhängt, der in diesem Fall Texteingabe heißt.

Fügen Sie jetzt im Header die Instanzvariablen für Ihre Elemente hinzu, den Button und das Text View.

 UIButton *bSave;
 UITextView *tvInput;

Anschließend müssen Sie noch eine Property definieren um eine Verbindung zwischen Xcode und Interface Builder herstellen zu können. Es ist bereits eine vordefinierte Property vorhanden für das Window, wenn sie schreibarbeit sparen wollen kopieren Sie es einfach und fügen es darunter ein und ändern lediglich den Namen der Property. In diesem Fall UIWindow in UIButton *bSave, das gleiche können Sie auch bei der Text View machen.

 @property (nonatomic, retain) IBOutlet UIButton *bSave;
 @property (nonatomic, retain) IBOutlet UITextView *tvInput;

Nachdem Sie die Properties eingefügt haben müssen Sie die Elemente noch synthesieren das machen Sie in der Implementationdatei mit folgenden Zeilen. Dort sehen Sie auch, dass das Windows synthesiert wird. @synthesize window;.

@synthesize bSave, tvInput;

Haben Sie die beiden Zeilen hinzugefügt erstellen wir noch eine Methode die bei einem Klick auf den Button aufgerufen wird.

- (IBAction)bSaveClicked:(id)sender;

Da wir jetzt erstmal alle Instanzvariablen deklariert bzw. definiert haben müssen Sie jetzt die Verbindung zwischen Variablen und den vorher erstellen Objekten herstellen. Gehen Sie hierzu wieder auf den Interface Builder und klicken Sie mit der rechten Maustaste auf die App Delegate für Texteingabe. Hier sehen Sie die Outlets bzw. Instanzvariablen die Sie ganz einfach mit Drag and Drop mit den Elementen des Window verbinden können.

Jetzt sind alle Elemente verbunden und fehlt lediglich noch das Event, das ausgelöst werden soll wenn auf den Button geklickt wird. Ziehen Sie hierzu wieder den Mauszeiger auf den Button und es öffnet sich ein kleines Fenster indem Sie ein Event auswählen können, in diesem Fall Touch Up Inside ( Auslösen wenn Button losgelassen wird ).

Da die Methode bSaveClicked erst definiert haben müssen wir jetzt in die Implementierungsdatei TexteingabeAppDelegate.m einfügen.

Jetzt sind alle grundlegenden Arbeiten vollbracht und jetzt können Sie den Text verarbeiten indem Sie den Text beispielsweise in einen String speichern. Gehen Sie dazu wieder in die Implementierungsdatei *.m und erstellen Sie einem String mit einer Zuweisung auf den Inhalt der Text View.

 NSString *strText = [tvInput.text];

Im oberen Bild sieht man noch zwei weitere neue Zeilen:

[bSave release];
[tvInput release];

Für den Anfang sind die Zeilen eher unwichtig sollten aber für spätere Projekte bzw. umfangreichere Applikationen vermerkt werden. Die Zeilen geben diese Elemente wieder frei und verhindern so das der Speicher überfüllt wird und es zu gefährlichen Memory Leaks kommt, die in den meisten Fällen zum Absturz der Applikation führen.


Suchbegriffe

Kategorie: Allgemein Kommentieren »


Kommentar schreiben

Kommentar