Как ограничить минимальное положение курсора быстрым, используя метод caretRectForPosition
или любым другим способом. Предположим, у меня есть текстовое изображение с некоторым контентом, и если пользователь пытается переместить курсор до третьей позиции, он не должен двигаться. Как это возможно? Прочитайте несколько статей об этом, но не отвечайте на мою проблему.Как ограничить позицию курсора быстрым?
ответ
Принимаю предположение, что, ограничивая минимальное положение курсора, вы подразумеваете, что из строки примера: «Это строка примера» - вы хотите убедиться, что выбор, сделанный пользователем, находится в пределах определенного NSRange?
UITextView имеет протокол делегата, который включает в себя метод, называемый при изменении выбора:
- (void)textViewDidChangeSelection:(UITextView *)textView
Вы могли бы реализовать делегат, прослушивающие этого метода, а затем сделать что-то вроде:
// Swift
func textViewDidChangeSelection(textView: UITextView) {
let minLocation = 3
let currentRange = textView.selectedRange
if (currentRange.location < minLocation) {
let lengthDelta = (minLocation - currentRange.location)
//Minus the number of characters moved so the end point of the selection does not change.
let newRange = NSMakeRange(minLocation, currentRange.length - lengthDelta);
//Should use UITextInput protocol
textView.selectedRange = newRange;
}
}
// Objective-C
- (void)textViewDidChangeSelection:(UITextView *)textView
{
NSUInteger minLocation = 3;//your value here obviously
NSRange currentRange = textView.selectedRange;
if (currentRange.location < minLocation) {
NSUInteger lengthDelta = (minLocation - currentRange.location);
//Minus the number of characters moved so the end point of the selection does not change.
NSRange newRange = NSMakeRange(minLocation, currentRange.length - lengthDelta);
//Should use UITextInput protocol
UITextPosition *location = [textView positionFromPosition:[textView beginningOfDocument] offset: newRange.location];
UITextPosition *length = [textView positionFromPosition:location offset:newRange.length];
[textView setSelectedTextRange:[textView textRangeFromPosition:location toPosition:length]];
}
}
Вы также можете использовать подобный подход наложить максимальный выбор/длину и т.д.
Это будет означать, что на струне образцом ранее не смог бы выбрать любого из «Thi» в начале строки ,
Более подробная информация о UITextView делегате здесь: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextViewDelegate_Protocol/
- 1. Как обновить позицию курсора?
- 2. Как получить позицию курсора
- 3. Как установить позицию курсора формы?
- 4. Как установить позицию курсора UISearchBar?
- 5. Termcaps: Получить позицию курсора
- 6. Найти позицию курсора
- 7. ViewPager смещает позицию курсора
- 8. Как сделать положение курсора более быстрым
- 9. SWT получить позицию курсора
- 10. IndexedDB - получить позицию курсора
- 11. получить позицию курсора
- 12. Selenium подтвердить позицию курсора
- 13. C++ проверить позицию курсора
- 14. Ввод курсора в позицию курсора в javascript
- 15. C# получить каждую позицию курсора
- 16. Получить позицию курсора, учитывая вкладки
- 17. получить позицию курсора в терминале
- 18. Получить позицию курсора в C#
- 19. mingw получить позицию курсора (консоль)
- 20. Silverlight Richtextbox получает позицию курсора
- 21. Сохранить позицию курсора в QTextEdit
- 22. Получить позицию изображения курсора мыши
- 23. LWJGL 3 получить позицию курсора
- 24. Пользовательский адаптер курсора (получить позицию)
- 25. Получить позицию курсора в ячейке
- 26. Восстановить позицию курсора после .replace()
- 27. Вставить смайлик в позицию курсора
- 28. Фрагмент кода - укажите позицию курсора
- 29. Вставить текст в позицию курсора
- 30. Получить позицию курсора Android Keyboard
, например, если строка «Это строка». Курсор не должен перемещаться перед буквой «i» в подстроке «This», даже если пользователь пытается ее переместить. – coolly
Выше это сделает - но не включите «i» в выделение. Нужно было бы изменить minLocation на MAX (0, (x - 1)), чтобы включить i, где x - это минимальное местоположение. –
он работал красиво, было интересно, есть ли другой способ сделать это? @neuronical – coolly