Muszę przesunąć kursor, aby rozpocząć pozycję tekstową przy ustawieniu ostrości na polu tekstowym. Czy to możliwe?UITextField Ustaw kursor, aby rozpocząć pozycję tekstową
15
A
Odpowiedz
20
Ustaw kontroler widoku (lub innego odpowiedniego obiektu) jako pola tekstowego delegate
i wdrożenie metody takiego textFieldDidBeginEditing:
:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
UITextPosition *beginning = [textField beginningOfDocument];
[textField setSelectedTextRange:[textField textRangeFromPosition:beginning
toPosition:beginning]];
}
Zauważ, że setSelectedTextRange:
jest protokół metody UITextInput
(który implementuje), więc nie znajdziesz go bezpośrednio w dokumentacji UITextField
.
2
self.selectedTextRange = [self textRangeFromPosition:newPos toPosition:newPos];
Sprawdź to Finding the cursor position in a UITextField
2
Jeśli ktoś szuka odpowiedzi w Swift:
let desiredPosition = textField.beginningOfDocument
textField.selectedTextRange = textField.textRangeFromPosition(desiredPosition, toPosition: desiredPosition)
Ale wierzę, że to działa tylko wtedy, gdy kursor znajduje się już w polu tekstowym. Możesz to zrobić:
textField.becomeFirstResponder()
let desiredPosition = textField.beginningOfDocument
textField.selectedTextRange = textField.textRangeFromPosition(desiredPosition, toPosition: desiredPosition)
Ładny fragment kodu! Działa idealnie dla mnie. –