Interface Builder
Überblick
- Interface Builder ist der GUI-Designer für Mac OS X und iPhone.
- Alternative zur programmatischen Erzeugung des UIs im Code.
- Interface-Builder-Dateien mit der Endung
.xibenthalten eine serialisierte UI-Objekthierarchie:
File’s Owner
- Der
File's Ownerist ein Platzhalter für das Objekt, welches das .xib-File lädt:
IBOutlet
-
Mit
IBOutletwerden Instanzvariablen (oder Properties) markiert, die im Interface Builder verknüpft werden können:@interface SomeViewController : UIViewController { IBOutlet UITextField *someTextField; IBOutlet UIButton *someButton; } @end
IBOutlet-Properties im Interface Builder verknüpfen
IBAction
-
Mit
(IBAction)werden Ereignisbehandlungs-Methoden zur Verknüpfung im Interface Builder markiert:- (IBAction) onTouch; - (IBAction) onTouch:(id)sender; - (IBAction) onTouch:(id)sender forEvent:(UIEvent*)event;
IBAction-Methoden im Interface Builder verknüpfen
Interface Builder: Bedienung
-
Outlet/Action-Verknüpfungen erstellen: Mit der rechten Maustaste ziehen
-
Verknüpfungen zu einem Control anzeigen: Rechtsklick
-
Inspektoren: Attributes (
Cmd-1), Connections (Cmd-2), Size (Cmd-3), Identity (Cmd-4)
-
Auswahlmenü für alle Controls an einer Cursorposition (praktisch bei übereinanderliegenden Controls): Shift + Rechtsklick
-
Skalieren mit Größenanzeige: Alt + Skalieren
-
Duplizieren: Alt + Ziehen
Verwendung von xib-Dateien in UIViewController I
-
.xib-Files können bei der Initialisierung des Controllers angegeben werden und ersetzen die programmatische Erzeugung des UIs in derloadView-Methode:// UIViewController mit View-Inhalten aus SomeView.xib aus dem // Haupt-Bundle (bundle:nil) initialisieren [[UIViewController alloc] initWithNibName:@"SomeView" bundle:nil];
Verwendung von xib-Dateien in UIViewController II
-
Best Practice - Bereitstellung eines dedizierten Initializers:
- (id)init { if (self = [super initWithNibName:@"SomeView" bundle:nil]) { // ... } return self; }
Cocoa: Fokusbehandlung
-
Das Control mit Eingabe- und Touchfokus heißt
First Responder. -
Zuweisen des Fokus erfolgt mit:
BOOL success = [someControl becomeFirstResponder]
-
Aktuelles Control kann die Abgabe des Fokus ablehnen (
canResignFirstResponder). -
Bei Steuerelementen mit Texteingabe wird bei erfolgreicher Fokussierung die Tastatur eingeblendet.

