Управление позицией курсора в UITextField является сложным, потому что очень много абстракций связано с полями ввода и вычислением позиций. Тем не менее, это, безусловно, возможно. Вы можете использовать функцию-член setSelectedTextRange
:
[input setSelectedTextRange:[input textRangeFromPosition:start toPosition:end]];
Вот функция, которая берет диапазон и выбирает тексты в этом диапазоне. Если вы просто хотите поместить курсор на определенный индекс, просто используйте диапазон длиной 0:
+ (void)selectTextForInput:(UITextField *)input atRange:(NSRange)range {
UITextPosition *start = [input positionFromPosition:[input beginningOfDocument]
offset:range.location];
UITextPosition *end = [input positionFromPosition:start
offset:range.length];
[input setSelectedTextRange:[input textRangeFromPosition:start toPosition:end]];
}
Например, чтобы поместить курсор на idx
в UITextField input
:
[Helpers selectTextForInput:input
atRange:NSMakeRange(idx, 0)];