Wenn eine Hardwaretastatur mit iOS verwendet wird, wird durch Drücken der Tabulatortaste oder der Umschalttaste automatisch zum nächsten bzw. vorherigen logischen Responder navigiert. Gibt es eine Möglichkeit, das gleiche programmatisch zu machen (d. H. Die Tabulatortaste zu simulieren, anstatt die logische Reihenfolge manuell zu verfolgen)?Tabulatortaste simulieren Drücken Sie im iOS-SDK
Antwort
Nicht sicher, ob dies hilft, aber im Kontext eines UITextFields, wenn Sie UITextFieldDelegate
implementieren, wird - (BOOL)textFieldShouldReturn:(UITextField *)textField
aufgerufen, wenn die Return-Taste der Soft-Tastatur gedrückt wird.
Ich habe versucht, direkt auf meine Laptop-Tastatur zu schlagen und es schien zwischen allen Textfeldern in der Reihenfolge, in der Sie sie zur Ansicht hinzugefügt haben, zu springen, aber ging nicht zu anderen Arten von Feldern (Knöpfe usw.).
Taste auf der Tastatur simuliert die Taste auf der Soft-Tastatur des Simulators, die wie erwartet funktioniert.
Sie können die "tab-order" mit der Eigenschaft tag definieren. Der folgende Post beschreibt, wie der nächste Tag-Index für UITextField
s, How to navigate through textfields (Next/Done Buttons) zu finden ist.
Hier ist eine modifizierte Version des Codes von diesem Beitrag. Anstatt die Tastatur beim letzten Tag-Index zu entfernen, würde dieser folgende Code versuchen, zum ersten Tag-Index zurückzukehren.
-(BOOL)textFieldShouldReturn:(UITextField*)textField;
{
NSInteger nextTag = textField.tag + 1;
// Try to find next responder
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
// Found next responder, so set it.
[nextResponder becomeFirstResponder];
return NO;
}
// Try to find the first responder instead...
// Assuming the first tag index is 1
UIResponder* firstResponder = [textField.superview viewWithTag:1];
if (firstResponder) {
// loop back to the first responder
[firstResponder becomeFirstResponder];
} else {
// Not found, so remove keyboard.
[textField resignFirstResponder];
}
return NO; // We do not want UITextField to insert line-breaks.
}
Wenn Sie ein UI-Element andere als UITextField
wollen, sollten Sie noch in der Lage sein, die gleiche Logik zu verwenden, mit ein paar mehr Kontrollen.
Wie William Niu ist richtig, aber Sie können auch diesen Code unten erläutert verwenden.
Ich habe diese verwendet und bekam success.Now das Beispiel UITextField betrachten ...
Sie UITextView die delegierte Methode verwenden können -(BOOL)textFieldShouldReturn:(UITextField*)textField
wie unten erläutert.
Aber bevor Sie dies tun, sollten Sie jedem UITextField eine Markierung in einer Inkrement-Reihenfolge geben ... (Inkrement-Reihenfolge ist nicht erforderlich, aber für meinen Code ist es erforderlich, Sie können auch Dekrement-Reihenfolge, aber etwas Code verwenden) Änderungen, dies zu tun)
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
NSInteger nextTag = textField.tag + 1;
UIResponder* nextResponder = [self.view viewWithTag:nextTag];
if (nextResponder) {
[nextResponder becomeFirstResponder];
} else {
[textField resignFirstResponder];
}
return YES;
}
Hope this für Sie arbeiten ...
Glücklich Codierung ....
Dies funktioniert mit statischen Textfeldern, und ist eigentlich ein großartiger Ansatz, aber es ist alles verblüffend, wenn Ihre Textfelder in wiederverwendbaren Tableviewcells sind. – n00neimp0rtant
- 1. Tabulatortaste mit JavaScript simulieren
- 2. Erkennen Sie die Tabulatortaste Drücken Sie in TextBox
- 3. Simulieren Sie eine Detailveröffentlichungstaste Drücken Sie
- 4. Simulieren Taste drücken C#
- 5. Simulieren Taste drücken mit Bash
- 6. simulieren Schlüssel drücken Selen webdriverjs
- 7. Simulieren "Taste drücken" auf nicht Vordergrund-Fenster
- 8. Durch Drücken der Tabulatortaste für Wortvervollständigung im Modus Befehlszeilenschalter Modus in Vim
- 9. Tabulatortaste Cursorbewegung zwischen Textbox
- 10. Word vba - Drücken Sie die Tabulatortaste, um zum Lesezeichen zu gelangen?
- 11. jqGrid: Ist es möglich, einen Zellwechsel zu bestätigen, wenn Sie die Tabulatortaste drücken anstatt die Eingabetaste zu drücken?
- 12. Simulieren Sie mehrere Tastenkombinationen in Javascript
- 13. VB Simulieren Sie einen Tastendruck
- 14. Simulieren Linux Terminal im Browser
- 15. Android: Simulieren WiFi im Emulator?
- 16. Capybara: NotSupportedByDriverError beim Versuch zu simulieren drücken <ENTER>
- 17. Simulieren Tastatur drücken auf eine Weise, die nicht veraltet ist?
- 18. Simulieren Kombination von Tasten drücken von ADB-Terminal
- 19. Flugzeugmodus im iPhone Simulator simulieren
- 20. Simulieren Benutzereingaben im Bash-Skript
- 21. Simulieren Key drücken Ereignis mit Python für Linux
- 22. Wie simulieren Schlüssel drücken in Android mit AccessibilityService
- 23. Wie zu simulieren, in Rspec Drücken der Eingabetaste
- 24. RangeSlider verursacht NullPointerException beim Drücken der Tabulatortaste auf dem Fokus-Schieberegler
- 25. Wie simulieren Sie wenig Speicher im Android-Emulator?
- 26. Simulieren halten Sie einen Schlüssel
- 27. Simulieren einer Anrufunterbrechung im iPhone-Simulator
- 28. Wie simulieren Sie Home-Taste drücken Ereignis in iOS 7 (Jailbroken)?
- 29. Bestücken Sie nicht während der Tabulatortaste - Bootstrap-Datetime von Eonasdan
- 30. Cocoa: Simulieren Befehl + Tab in CGEvent
Duplikat Frage: http://stackoverflow.com/questions/3241966/ focus-on-next-valid-key-view-on-iphone hat eine gute antwort bekommen. –