2012-04-11 18 views
3

Ich versuche, die Tab-Reihenfolge für NSTextFields auf einem bestimmten NSView festzulegen. Soweit ich es verstehe, muss ich die NSTextFields mit InterfaceBuilder verbinden, indem ich den nextKeyView Ausgang auf das nächste NSTextField setze. Ich habe das getan - und es gibt keinen Effekt. Wenn ich in einem der NSTextFields Tab drücke, verliert es einfach den Fokus und das ist es. Egal, wie oft ich auf die Tabulatortaste drücke, keiner der anderen NSTextFields erhält den Fokus wieder.Tabulatorreihenfolge für NSTextFields eines NSView

Ich lese auch, dass ich den initialFirstResponder des Fensters festlegen muss. Ich glaube nicht, dass ich das in diesem speziellen Fall tun kann, da mein AppDelegate ein NSView aufruft, das wiederum als Menü-Bereich mit vielen verschiedenen Schaltflächen fungiert, die jeweils verschiedene NSViews aufrufen, die als Subviews einer anderen Ansicht geladen werden . Daher kann das AppDelegate nicht wissen, welches NSView derzeit geladen ist.

Gibt es eine Möglichkeit, die Tab-Reihenfolge von NSTextFields auf NSView-Basis zu setzen?

Dank

Antwort

1

Sie müssen Auto-Neuberechnung der Schlüsselschleife im Fenster deaktivieren. Siehe -[NSWindow setAutorecalculatesKeyViewLoop:].

Bearbeitet hinzufügen: dies kann auch in Interface Builder eingestellt werden.

+0

Hat nicht funktioniert. Ich habe [_window setAutorecculatesKeyViewLoop: NO] hinzugefügt; zur applicationDidFinishLaunching-Methode. In Interface Builder hatte ich nicht die Checkbox "Auto Recalculate View Loop" an erster Stelle markiert. – Joseph

+0

Möchten Sie die Tabbing-Reihenfolge anpassen, oder möchten Sie nur, dass die Tabs überhaupt funktionieren und nicht? Wenn letzteres, hast du versucht * automatische * Neuberechnung der Schlüsselansicht Schleife * zu aktivieren? –

+0

Ich habe versucht, die Option "Auto Recalculats View Loop" zu aktivieren, aber es hatte keine Wirkung. Und im Grunde möchte ich das Tabbing überhaupt einsetzen ... Momentan, wenn ich aus einem NSTextField herausnehme, verliert es den Fokus und nichts anderes passiert ... Nichts anderes wird fokussiert - egal wie oft ich Tabulatortaste drücke ... – Joseph

0

Dies kann oder kann nicht für Ihre Situation helfen, aber Folgendes funktionierte für mich, wenn Sie mit einem NSView in einem anderen NSView zu tun haben. Ich hatte zwei vertikale Stapel von NSTextFields. Anstatt waagerecht zu fahren, musste ich einen Stapel und dann den nächsten ablegen ... Also habe ich jeden der zwei vertikalen Stapel in eine eigene Box eingebettet (In IB, wähle zuerst deine Gegenstände, Editor> Einbetten in>). Funktioniert perfekt. Wenn Sie das Aussehen einer Box nicht möchten, können Sie ihren Titel löschen und den Rahmentyp auf none: invisible box setzen.