2010-11-23 18 views
18

Vielleicht ist die Stunde zu spät, aber ich kann nicht finden, wo ich die gesamte Tab-Reihenfolge meines Interface Viewer Dialog einstellen kann, genau wie ich mit Visual Studio.Tab Reihenfolge im Interface Builder?

vermisse ich etwas? Die Tab-Reihenfolge ist allesamt krumm. Command-R zum Simulieren zeigt es an.

+0

Bearbeiten Sie Ihre Frage einen Screenshot der „Tab-Reihenfolge“ enthalten, die Sie sich beziehen, und was Sie finden „krumme“. –

Antwort

36

Der Begriff Cocoa, nach dem Sie suchen, ist "key view loop". Verwenden Sie die Anschlüsse und nextKeyView, um die Ansichten in der Reihenfolge zu verbinden, in der Sie sie durchblättern möchten. Beachten Sie, dass sich die Elemente, die den Tastaturfokus erhalten können, abhängig von der Einstellung für den vollständigen Tastaturzugriff ändern (in den Systemeinstellungen> Tastatur); Wenn diese Option deaktiviert ist, überspringt die Tab-Taste verschiedene Elemente in der Schlüsselansichtsschleife.

Dies wird in der Dokumentation here erwähnt.

+1

Danke. Gibt es eine Möglichkeit, die Reihenfolge vom Interface-Builder selbst festzulegen? Ich meine, wenn Sie etwas von Grund auf neu erstellen, wird es eine Tab-Reihenfolge haben, basierend auf der Reihenfolge der Kontrollerstellung. Wenn ich das letzte Steuerelement in der "ersten Position" auf der Ansicht selbst hinzufüge, wird es immer noch das letzte sein, obwohl es so aussieht, als ob es das erste gewesen wäre. Ich denke, meine Frage ist, ob es eine Möglichkeit gibt, diese Reihenfolge von Interface Builder selbst zu optimieren, nicht programmatisch, wenn möglich. – JasonGenX

+3

Ja, wenn ich sage "Steckdosen ... verbinden Sie die Ansichten zusammen" Ich spreche über Dinge, die Sie von Interface Builder tun können. Sie verwenden die Ausgangsöffnung des erstenFirstResponders des Fensters, um die "erste Position" festzulegen. –

+1

Für die Nachwelt, ein Kern, der den aktuellen Ersthelfer hervorhebt und die Key-View-Schleife in der Konsole ausgibt: https://gist.github.com/mittsh/6668638 –

2

Lassen Sie die Steckdosen als a, b und c benannt werden. Mac Standard-Tab-Reihenfolge ist a -> b -> c -> a

Aber Ihre gewünschte Tab-Reihenfolge ist a -> c -> b ->a:

enter image description here

IB Verwendung:

Set a als initialFirstResponder. Geben Sie dann nextKeyView als a to c, c to b and c to a ein.

Aber ich bevorzuge die Verwendung von Codes, hier wird es einfacher, mehr hinzuzufügen. Wie in der komplexen Benutzeroberfläche kann es mehr als 30 Steuerelemente geben und Sie müssen möglicherweise eine neue Steuerung mischen und sogar einfügen !!!

So können Sie erreichen das gleiche wie:

[self.a setNextKeyView:self.c]; 
[self.c setNextKeyView:self.b]; 
[self.b setNextKeyView:self.a]; 
+0

Dies funktioniert nicht, wenn einige der Ansichten standardmäßig ausgeblendet sind und später sichtbar werden. – Etan

+0

@Etan: Für solche Fälle müssen Sie vorsichtig sein, indem Sie die nextKeyView-Laufzeit entsprechend der sichtbaren Ansicht (oben) festlegen. –