У меня есть UITextView в приложении для iOS, чтобы пользователь мог вводить его. Я настраиваю его, чтобы добавить пользовательское поведение, в том числе «режим пишущей машинки», в котором текущая строка текста остается центрированной вертикально на экране.
Если у пользователя есть внешняя клавиатура и он набирает «Command-Up Arrow», выделение перемещается в начало текста, но мне нужно самому прокрутить прокрутку, потому что я переопределил поведение по умолчанию.
Если пользователь вводит текст, это обрабатывается как часть изменений, внесенных с помощью метода insertText:
.
Если пользователь вводит обычную клавишу со стрелкой (вверх / вниз / влево / вправо), я обнаруживаю это путем переопределения positionFromPosition:inDirection:offset
.
Но я не вижу, какой метод используется после ввода «Command-Up Arrow». Я полагаю, что в macOS это будет сделано через moveToBeginningOfDocument:
. Какой эквивалентный метод вызывается на iOS?
Поиск не привел меня к ответу (возможно, плохие условия поиска). Взлом на textviewDidChangeSelection:
в XCode не показывает ничего полезного - он показывает [UITextView textinputDidChangeSelection:]
, за которым следует UIApplicationMain
после пропуска 46 промежуточных методов ....
Я понимаю, что мог бы создать свой собственный UICommandKey, но, вероятно, было бы лучше реагировать на поведение по умолчанию, а не переопределять его, если это абсолютно не необходимо.
Спасибо за любую помощь!