Как определить, что пользователь ввел Command-Up Arrow в UITextView на iOS с внешней клавиатурой? - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть UITextView в приложении для iOS, чтобы пользователь мог вводить его. Я настраиваю его, чтобы добавить пользовательское поведение, в том числе «режим пишущей машинки», в котором текущая строка текста остается центрированной вертикально на экране.

Если у пользователя есть внешняя клавиатура и он набирает «Command-Up Arrow», выделение перемещается в начало текста, но мне нужно самому прокрутить прокрутку, потому что я переопределил поведение по умолчанию.

Если пользователь вводит текст, это обрабатывается как часть изменений, внесенных с помощью метода insertText:.

Если пользователь вводит обычную клавишу со стрелкой (вверх / вниз / влево / вправо), я обнаруживаю это путем переопределения positionFromPosition:inDirection:offset.

Но я не вижу, какой метод используется после ввода «Command-Up Arrow». Я полагаю, что в macOS это будет сделано через moveToBeginningOfDocument:. Какой эквивалентный метод вызывается на iOS?

Поиск не привел меня к ответу (возможно, плохие условия поиска). Взлом на textviewDidChangeSelection: в XCode не показывает ничего полезного - он показывает [UITextView textinputDidChangeSelection:], за которым следует UIApplicationMain после пропуска 46 промежуточных методов ....

Я понимаю, что мог бы создать свой собственный UICommandKey, но, вероятно, было бы лучше реагировать на поведение по умолчанию, а не переопределять его, если это абсолютно не необходимо.

Спасибо за любую помощь!

...