Könnte jemand mich wissen lassen, wie ich automatisch scrollView scrollen kann, wenn ein Keyboard-Benutzer versucht zwischen verschiedenen UI Elementen in der ScrollView zu navigieren 'Tab-Taste? Wenn ich die "TAB" -Taste drücke, wird der Fokus auf ein anderes in der scrollView vorhandenes UI-Element verschoben, aber es wird nicht geblättert, wenn das UI-Element nicht in der sichtbaren Inhaltsansicht vorhanden ist. Wie kann dies erreicht werden? Hilfe wäre willkommen. Vielen Dank.Eingabehilfen: ScrollView zum automatischen Scrollen zur Ansicht, die beim Drücken von "TAB" nicht sichtbar sind
6
A
Antwort
3
Lösung A: Erstellen Sie eine Unterklasse von NSWindow
und überschreiben Sie makeFirstResponder:
. makeFirstResponder
wird aufgerufen, wenn sich der Erstantworter ändert.
- (BOOL)makeFirstResponder:(NSResponder *)responder {
BOOL madeFirstResponder = [super makeFirstResponder:responder];
if (madeFirstResponder) {
id view = [self firstResponder];
// check if the new first responder is a field editor
if (view && [view isKindOfClass:[NSTextView class]] && [view isFieldEditor])
view = [view delegate]; // the control, usually a NSTextField
if (view && [view isKindOfClass:[NSControl class]] && [view enclosingScrollView]) {
NSRect rect = [view bounds];
rect = NSInsetRect(rect, -10.0, -10.0); // add a margin
[view scrollRectToVisible:rect];
}
}
return madeFirstResponder;
}
Lösung B: Erstellen einer Unterklasse von NSTextField
und andere Steuerelemente und becomeFirstResponder
außer Kraft setzen.
- (BOOL)becomeFirstResponder {
BOOL becameFirstResponder = [super becomeFirstResponder];
if (becameFirstResponder) {
if ([self enclosingScrollView]) {
NSRect rect = [self bounds];
rect = NSInsetRect(rect, -10.0, -10.0); // add a margin
[self scrollRectToVisible:rect];
}
}
return becameFirstResponder;
}
+0
Danke @Willek. Ich hatte etwas ähnliches versucht, aber es hat nicht funktioniert, es funktioniert bei NSWindow es funktioniert wie Charme. –
Verwandte Themen
- 1. Zum Anfang von ScrollView scrollen
- 2. Tab-Schaltflächen existieren, sind aber nicht sichtbar
- 3. Scrollen zur letzten Zeile von TableLayout innerhalb einer ScrollView
- 4. Zeichen, die beim Drucken nicht sichtbar sind
- 5. machen Popup sichtbar beim Scrollen
- 6. ScrollView kann nicht zu einer bestimmten Ansicht scrollen
- 7. Scrollview Delegate-Methode auch beim Scrollen Sammelansicht
- 8. ScrollView nicht schleudern. Scrollen langsam
- 9. die Scrollview Scrollen am unteren programmatisch - iphone
- 10. ScrollView nicht Scrollen - Android
- 11. Android ScrollView nicht Scrollen
- 12. Android: ScrollView, die textInput enthält nicht scrollen
- 13. "Ausblenden" der Registerkartenleiste beim Drücken einer Ansicht
- 14. UIColectionView Vertikales Scrollen in einem Scrollview - Scrolling des Scrollview beim Scrollen im Bereich der Collection-Ansicht deaktivieren
- 15. glatt scrollen für scrollview
- 16. ScrollView lässt die Seite nicht scrollen
- 17. Scrollen zum ausgewählten Treeviewitem in einem Scrollview
- 18. Oft versehentlich ein ScrollView-Unterelemente beim Scrollen der ScrollView eingeben
- 19. UITableview nicht sichtbar die letzte Zelle beim Scrollen nach unten
- 20. Befehlsvervollständigungen sind in ipython 5.0 nicht sichtbar
- 21. Scrollview erkennt nur Scrollen von bestimmten Bereichen?
- 22. Deaktivieren der Symbolleiste Scrollen beim Drücken
- 23. Animation funktioniert nicht beim Scrollen
- 24. AppBarLayout zum Scrollen nur beim Scrollen nach oben und NICHT beim Scrollen nach unten
- 25. listView recycelt Ansicht beim Scrollen
- 26. Deaktivieren Sie vertikale Bildlauf in Scrollview beim horizontalen Scrollen
- 27. Warum sind Farbkugeln beim Mausklick nicht sichtbar?
- 28. extjs 4 - horizontales Scrollen zum Tab im Gitterfeld einstellen
- 29. ios Tab Bar Taste zur modalen Ansicht
- 30. ein Linearlayout oben Stellen beim Scrollen, die im Innern des Scrollview ist
Möchten Sie im Code scrollen? Hast du irgendwas versucht? – Willeke
Ja. Ich möchte, dass die Bildlauffunktion automatisch ausgeführt wird, wenn die Ansicht scharf gestellt wird und sich nicht im sichtbaren Bereich von scrollView befindet. Ich habe 'Autoscroll:' mit Fehler ausprobiert. Ich habe keine Ahnung, was ich tun muss. Hoffe, du hast meine Anforderung. Bitte kommentieren. –
Versuchen Sie '[view scrollRectToVisible: view.bounds]'. – Willeke